在标签栏控制器之前显示视图

时间:2013-12-28 18:44:13

标签: ios objective-c uitabbarcontroller

我正在开发一款将使用标签栏控制器的应用。但在此标签栏控制器出现之前,我需要对用户进行身份验证。所以我试图在Tab栏控制器出现之前加载一个View。 这是我到目前为止所做的: 我正在使用选项卡式应用程序,故事板中是标签栏控制器。 我创建了一个名为LoginViewController的View Controller,它包含了自己的xib。

所以在 AppDelegate didFinishLaunchingWithOptions:方法中我这样做了:

LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:NULL];
self.window.rootViewController = loginViewController;
[self.window addSubview:loginViewController.view];

然后,在 LoginViewController 实现中,我创建了一个在登录成功时将被调用的方法。这是它的样子:

- (void)removeLoginView
{
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate removeLoginView];
}

现在我不知道如何在AppDelegate中实现此方法。 我怎么能删除loginViewController并从故事板中设置TabBar控制器才能显示?或者关于如何做这样的事情的任何其他建议。

注意:我看到了一些关于使用presentModalViewController的建议,但它已被弃用。

1 个答案:

答案 0 :(得分:3)

tab bar controller设置为window.rootViewController,在didFinishLaunchingWithOptions:方法的末尾,只需使用presentViewController:animated:completion方法(替换已弃用的presentModalViewController方法):

LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:NULL];
self.window.rootViewController = tabarViewController;
[tabarViewController presentViewController:loginViewController animated:NO completion:nil]