我在理解第一个视图控制器的选择方式以及如何动态更改方面遇到了鸡/蛋问题。
在典型的基于登录的应用程序(例如facebook)中,您有第一个视图控制器,即登录。登录后,下次进入应用程序时,将首先显示另一个视图。
我看不到一个地方(在main.m中?)或app委托,您可以在其中选择第一个视图并应用一些逻辑来选择它。我所看到的是,无论如何都使用了第一个视图,并且在该视图中,无论是否调用登录窗口,都会执行一些逻辑。这是完成这项工作的唯一做法吗?在用户需要登录的情况下,我不希望我的主视图在生成登录视图之前闪烁一会儿。如果需要,我不能直接进入登录视图,或者如果用户已经登录,则首先进入“登录”视图?
答案 0 :(得分:0)
您可以通过多种方式执行此操作,但最简单的方法是保留用户登录所需的一些记录,如果有,则将登录视图控制器作为模式视图控制器提供给标准顶部根视图控制器
- (void)appDidFinishLaunchingWithOptions:(NSDictionary *)options
{
//window setup
UIViewController *normalRootViewController = [[UIViewController alloc] init];
self.window.rootViewController = normalRootViewController;
[self.window makeKeyAndVisible];
if (shouldDisplayLoginViewController)
{
UIViewController *loginViewController = [[UIViewController alloc] init];
[self.window.rootViewController presentModalViewController:loginViewController animated:NO];
}
}
如果要删除登录视图控制器并显示普通视图控制器,只需将其视为任何模态视图控制器