在标签栏控制器之前添加视图控制器

Posted

技术标签:

【中文标题】在标签栏控制器之前添加视图控制器【英文标题】:Add view controller before tabbar controller 【发布时间】:2014-03-25 17:53:19 【问题描述】:

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

-我能够做到这一点。

我创建了一个新的标签栏应用程序。 我添加了一个新的视图控制器并将其设为“初始”视图控制器,创建了一个新的 Objective-c 类并将其与新的视图控制器相关联。

现在我将如何在检查用户名/密码后加载标签栏视图控制器?

【问题讨论】:

您是在使用情节提要还是以编程方式进行? 【参考方案1】:

最好/最简单的方法可能是不要在开头使用UITabBarController

让您的LoginViewController 成为您的windowrootViewController,直到用户登录。然后将其更改为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 段吗?或者创建一个教程?:) 谢谢。

以上是关于在标签栏控制器之前添加视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

想在标签栏视图控制器中添加一个简单的导航栏

没有 TabBarController 的标签栏 - 为情节提要中的标签栏项目添加视图控制器

在导航到另一个视图控制器之前切换标签栏

将主标签栏添加到其他视图控制器

将标签栏添加到导航控制器

添加标签栏后导航下的搜索栏位置