0

我有一个应用程序,它具有UITabBarController,其中的一个选项卡已配置为导航控制器。将视图添加到启动应用程序的导航控制器

基于某些逻辑,我需要在应用程序启动时将不同的根视图添加到选项卡中的导航控制器。

但是,这很容易在界面构建器中完成,因为我需要弄清楚在启动时需要附加哪个视图,在这种情况下界面构建器对我来说没有多大用处。

我猜我需要在我的应用程序委托类的applicationDidFinishLaunching方法中通过某种方式获取我感兴趣的选项卡并将视图推送到它的导航控制器中执行此操作?

我怎么会去吗?

谢谢。

回答

0

所以我在我的applicationDidFinishLaunching方法所做的是:

// get the array of tabs 
NSArray *tabBarArray = tabBarController.viewControllers; 
// in my case the navigation controller I'm interested in is in the 4th tab 
UINavigationController *navigationController = [tabBarArray objectAtIndex:4]; 

if(someLogic == true) { 
    ViewController1 *viewController1 = [[viewController1 alloc] initWithNibName:@"View1" bundle:nil]; 
    [navigationController pushViewController:viewController1 animated:NO]; 
    [viewController1 release]; 
} 
else { 
    ViewController2 *viewController2 = [[viewController2 alloc] initWithNibName:@"View2" bundle:nil]; 
    [navigationController pushViewController:viewController2 animated:NO]; 
    [viewController2 release]; 
} 

一切运作良好。

0

你在正确的轨道上。在您的应用程序代理的applicationDidFinishLaunching方法中,您需要查看您的任何条件,并选择正确的设置作为UINavigationController的根视图控制器。

我猜这是一个登录屏幕或什么?如果你有一个早期的会话缓存登录,你不会再显示它?是吗?

如果您在应用程序委托中查看该方法,您会看到默认根视图控制器正在实例化并推送到导航控制器中的位置。只需在if()语句中复制该代码即可。我已经做到了,这很简单。

相关问题