2012-07-05 29 views
1

我無法將某個選項卡視圖設置爲UiNavigation控制器。我得到的警告是:無法將UINavBarController設置爲UITabBarController

Pushing a navigation controller is not supported 

這裏是我的代碼:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    UIViewController *viewController1, *viewController2, *viewController3, *viewController4; 
     viewController1 = [[HomeViewController alloc] initWithNibName:@"HomeViewController_iPhone" bundle:nil]; 
     viewController2 = [[SearchViewController alloc] initWithNibName:@"SearchViewController_iPhone" bundle:nil]; 
     viewController3 = [[ListViewController alloc] initWithNibName:@"ListViewController_iPhone" bundle:nil]; 
     viewController4 = [[InfoViewController alloc] initWithNibName:@"InfoViewController_iPhone" bundle:nil]; 

    self.tabBarController = [[UITabBarController alloc] init]; 
    UINavigationController * listNavController = [[UINavigationController alloc] initWithRootViewController:viewController3]; 
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, listNavController, viewController4, nil]; 
    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

回答

0
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, listNavController, viewController4, nil]; 

self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, viewController3, viewController4, nil]; 

,並保持到導航控制器的參考,如果需要的。我認爲這將是正確的做法,但您也可以將導航控制器包裝在一個簡單的UIViewController中。如果viewController3不能保證在任何時候都是堆棧中最底層的VC,你會想要這樣做。