在标签栏控制器之前添加视图控制器
Posted
技术标签:
【中文标题】在标签栏控制器之前添加视图控制器【英文标题】:Add view controller before tabbar controller 【发布时间】:2014-03-25 17:53:19 【问题描述】:我是 Objective-c 和 ios 编程的新手。我正在构建一个标签栏应用程序。但在标签栏视图控制器加载之前。我想加载一个“登录屏幕”。
-我能够做到这一点。
我创建了一个新的标签栏应用程序。 我添加了一个新的视图控制器并将其设为“初始”视图控制器,创建了一个新的 Objective-c 类并将其与新的视图控制器相关联。
现在我将如何在检查用户名/密码后加载标签栏视图控制器?
【问题讨论】:
您是在使用情节提要还是以编程方式进行? 【参考方案1】:最好/最简单的方法可能是不要在开头使用UITabBarController
。
让您的LoginViewController
成为您的window
的rootViewController
,直到用户登录。然后将其更改为UITabBarController
(不包括登录视图)。您可以在 AppDelegate.m
文件中执行此操作。
【讨论】:
Dima,感谢您的快速回复。所以我做了以下事情:在 AppDelegate.h 中导入了我的 LoginViewController,创建了一个新属性。然后在我的 AppDelegate.m 下 didFinishLaunchingWithOptions;我补充说:self.window.rootViewController = self.loginController。当我运行它时,屏幕变黑并且我得到一个“应用程序窗口应该在应用程序启动结束时有一个根视图控制器”【参考方案2】:我会将标签栏控制器保留为您的根视图控制器。在viewDidAppear
中,检查您的用户是否已登录,如果未登录,则以模态方式显示登录视图控制器,不使用动画。
UIViewController *loginVC = [UIStoryboard storyboardWithName:@"storyboard" instantiateViewControllerWithIdentifier:@"Login"];
[self presentViewController:loginVC animated:NO completion:nil];
当用户成功登录后,您可以关闭登录 VC。它会向下滑动,显示您的选项卡式布局。
如果您需要更复杂的登录层次结构(也许您需要推送注册视图或“您未能登录”视图等),您可以将登录视图控制器嵌入导航控制器并改为呈现。
【讨论】:
您能详细说明第 3 段吗?或者创建一个教程?:) 谢谢。以上是关于在标签栏控制器之前添加视图控制器的主要内容,如果未能解决你的问题,请参考以下文章