查看加载问题

时间:2010-05-06 12:31:36

标签: iphone objective-c

我正在使用一些没有标签栏的xib和一些带标签栏的xib。

在开始我加载没有标签栏导航栏的xib然后流程正在工作。但是如果我加载带有标签栏导航栏的xib,那么我们的所有视图幻灯片下方和半标签栏都没有显示。请有人帮助我尽快。

Pleaseeee !!!!!!

1 个答案:

答案 0 :(得分:0)

您是在加载标签栏控制器还是只加载一个标签栏?是否在使用导航控制器推送视图后立即发生?如果是这样的话,同样的事情发生在我身上(link here),我一直无法修复它。我认为它不受Apple支持且不推荐,你可以在NavigationController类参考中找到:

  • viewController :被推入堆栈的视图控制器。 此对象不能是标签栏控制器的实例,并且它必须不在导航堆栈

我所做的是将一个标签栏(不是标签栏控制器)添加到正在推送的视图中,然后以编程方式对其进行配置。你可以在这里找到一个很好的例子(http://discussions.apple.com/thread.jspa?threadID=2099944&tstart=0),但它会是这样的:

- (void)activateTab:(int)index {
     switch (index) {
         case 1:
             if (tab1ViewController == nil) {
                 self.tab1ViewController =
                 [[Tab1ViewController alloc] initWithNibName:@"Tab1View" bundle:nil];
             }
             [self.view addSubview:tab1ViewController.view];
             if (currentViewController != nil)
                 [currentViewController.view removeFromSuperview];
             currentViewController = tab1ViewController;
             break;
         case 2:
             if (tab2ViewController == nil) {
                 self.tab2ViewController =
                 [[Tab2ViewController alloc] initWithNibName:@"Tab2View" bundle:nil];
             }
             [self.view addSubview:tab2ViewController.view];
             if (currentViewController != nil)
                 [currentViewController.view removeFromSuperview];
             currentViewController = tab2ViewController;
             break;
         default:
             break;
     }
}


- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    [self activateTab:item.tag];
}


- (void)viewDidLoad {
    [super viewDidLoad];
    [myTabBar setSelectedItem:[myTabBar.items objectAtIndex:0]];
    [self activateTab:1];
}

当然,您需要声明Tab Bar以及此处使用的三个View控制器(tab1ViewController,tab2ViewController和currentVideoController)。

你没有提供太多细节,但我希望这会有所帮助。