如何使用tabbarcontroller在应用程序加载上消除视图控制器

时间:2011-11-04 22:17:45

标签: ios5 storyboard tabbarcontroller

我使用tabbarcontroller作为根视图控制器。不幸的是,使用新的故事板功能,很难在应用程序加载上划分视图控制器 - 登录页面。

我使用以下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;

    [tabBarController performSegueWithIdentifier:@"loginPage" sender:self];

正确设置了segue。我进入了一个选项卡视图控制器并制作了一个IBAction并成功进行了搜索。 提前致谢。

2 个答案:

答案 0 :(得分:9)

今天遇到同样的问题。我不得不打电话:

[self.window makeKeyAndVisible];

之前

[self.window.rootViewController performSegueWithIdentifier:@"LoginView" sender:self];

所以我假设在使用故事板时,makeKeyAndVisible发生在didFinishLaunchinWithOptions:返回之后。所以什么时候调用segue它发生在一个不在屏幕上的视图上。

答案 1 :(得分:1)

我最近遇到了同样的问题。但是,提供的解决方案并不适用于我。

原因是我使用“push”segue来显示我的登录视图控制器(嵌入在导航控制器中)。将segue的风格从“推”改为“模态”对我来说是个窍门。显然,不可能从标签栏控制器中启动“推送”segue,而只能从导航控制器中启动“推送”。

此外,我没有把行

[self performSegueWithIdentifier:@"LoginSegue sender:self];

在应用委托代理的方法didFinishLaunchingWithOptions:didFinishLaunchingWithOptions:中,而不是方法viewDidAppear:中。这样做,我不需要以下代码行:

[self.window makeKeyAndVisible];

希望这对其他人有用。