当它是UINavigationController时设置tabBarController.selectedIndex / selectedViewController

时间:2013-01-30 20:45:43

标签: xcode uinavigationcontroller uitabbarcontroller uitabbar

我的tabBarController中有5个视图,所有这些视图都嵌入在一个单独的导航控制器中,即每个视图都有自己的导航控制器。我这样做是为了更容易推送segues,我知道它可能不是最好的解决方案,但它工作正常。现在问我的问题:

我正在尝试使用以下代码设置初始视图:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    tabBarController.selectedIndex = 2;
    return YES;
}

然而它根本不工作,应用程序只是启动并索引0(最左边的视图)。

我搜索了this这样的透彻线程,尝试了许多不同的方法来解决这个问题而没有任何成功......

我得到的最近的是当我在MainStoryboard_iPhone.storyboard中选中我想要开始的viewcontroller中的“是初始视图控制器”框时。这样我得到了正确的起始视图控制器,但是标签栏没有显示。

1 个答案:

答案 0 :(得分:1)

由于您正在使用故事板,请执行以下操作: 1)为tabBarController提供一个故事板标识符(比如tbc); 2)在你的appDelegate DidFinishLaunching中,执行以下操作::

UITabBarController *tbc = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"tbc"];

[tbc setSelectedIndex:1];
[self.window setRootViewController:tbc];
[self.window makeKeyAndVisible];

return YES;

PS:这只是使其发挥作用的众多方法之一