2014-03-25 60 views
0

我是新来的objective-c和ios编程。我正在构建一个tabbar应用程序。但在tabbar视图控制器加载之前。我想加载一个“登录屏幕”。在tabbar控制器之前添加视图控制器

- 我能够做到这一点哈弗。

我创建了一个新的tabbar应用程序。 我添加了一个新的视图控制器,并使其成为“初始”视图控制器,创建了一个新的Objective-c类并将其关联到新的视图控制器。

现在如何在检查用户的用户名/密码后加载tabbar视图控制器?

+0

您是使用故事板还是以编程方式做? –

回答

2

最好/最简单的方法可能不会让UITabBarController开始。

有你LoginViewController是你window直到用户登录在rootViewController,然后改变它是UITabBarController(不包括登录视图)。您可以在AppDelegate.m文件中执行此操作。

+0

迪玛,感谢您的快速回复。所以我做了以下:在AppDelegate.h中导入我的LoginViewController,创建一个新的属性。然后在我的AppDelegate.m下didFinishLaunchingWithOptions;我添加了:self.window.rootViewController = self.loginController。当我运行它时,屏幕出现黑屏,我得到一个“应用程序窗口预计在应用程序启动结束时有一个根视图控制器” – shuskic

2

我会离开标签栏控制器作为您的根视图控制器。在viewDidAppear中,检查您的用户是否已登录,如果没有,则以模态方式呈现登录视图控制器而不显示动画。

UIViewController *loginVC = [UIStoryboard storyboardWithName:@"storyboard" instantiateViewControllerWithIdentifier:@"Login"]; 
[self presentViewController:loginVC animated:NO completion:nil]; 

当用户成功登录时,您可以关闭登录VC。它会滑下来,显示您的标签式布局。

如果您需要更复杂的登录层次结构(也许您需要推入注册视图或“无法登录”视图等),则可以将登录视图控制器嵌入导航控制器并代之以呈现。

+0

你能详细说明第3段吗?或者,也许创建一个教程?:)谢谢。 –