视图控制器设置
问题描述:
我想弄清楚根据我给出的设计来获取视图控制器设置的最佳方式。我的应用程序从全屏登录屏幕开始。用户登录,然后下一个视图是3选项卡屏幕。在任何3个标签视图中单击任何控件时,都需要将您带到全屏视图控制器。视图控制器设置
现在我面临的问题是, 1)指导方针说不要把TabBarController放在NavigationController中,在这种情况下我必须这样做。 2)另外如果我将每个TabBarView的ViewControllers设置为导航控制器,那么我不会获得全屏幕空间,因为底部始终显示标签栏,我不需要看到它。
思想和指针欣然赞赏。
答
我会设置它的方式是有一个全局的容器视图控制器来管理所有的内部视图控制器。例如:
=============================
= Container View Controller =
=============================
| |
------------ -----------
- Login VC - - Main VC -
------------ -----------
然后,工作流应用程序启动将是如下:
- 应用程序启动和容器/防溅视图控制器是根视图控制器。
- 容器视图控制器确定登录状态(可能显示加载指示符等)。
- 转换到正确的视图控制器。
如果用户没有登录,则可以转换到登录视图控制器。从那里,您可以订阅代理回调或用户登录后发送的通知。一旦收到该消息,您可以重新检查登录状态并相应地显示视图控制器。
如果用户登录,无论是在开始或接收登录回调后,然后只显示主视图控制器。
注销将以与登录相同的方式工作。只需将通知推送到容器视图控制器,并让它相应地管理视图控制器。
答
就个人而言,我会使用tabBarController作为您的初始视图控制器。如果用户没有登录,立即出现(模态)你的登录视图控制器。一旦用户登录后关闭登录控制器,并返回到tabBarController。将导航控制器中每个选项卡的视图控制器包装在一起,但设置为hidesBottomBarWhenPushed
以隐藏tabBar。