呈现视图控制器时出现问题
Posted
技术标签:
【中文标题】呈现视图控制器时出现问题【英文标题】:Issue while presenting viewControllers 【发布时间】:2014-03-13 10:12:51 【问题描述】:我有一个configurationControllerVC
和loginPageControllerVC
。最初我想介绍configurationControllerVC
。一旦我的配置过程完成,我去loginControllerVC
。如果配置已经完成并且用户重新打开应用程序,我想立即加载loginControllerVC
,而无需执行配置过程。
问题是在我的应用程序中,有一个条件,如果它是假的,我想把用户带回configurationControllerVC
。
我的viewControllers流程如下:
如果配置尚未完成:
ConfigurationControllerVC --> LoginControllerVC --> HomePageControllerVC --> ReportingControllerVC.
如果配置完成,那么流程是这样的:
LoginControllerVC --> HomePageControllerVC --> ReportingControllerVC.
我想将用户导航到configurationControllerVC
的条件可能在HomePageControllerVC
或reportingControllerVC
上遇到。
在这种情况下,什么更好?使用UINavigationController
还是仅将视图呈现在另一个之上?另外,如何实现将用户导航回configurationControllerVC
这部分?
目前我正在使用此代码在我的appDelegate
中显示configurationControllerVC
和LoginControllerVC
。
if ([self checkForConfiguration])
// Initiate initial screen
ConfigurationController *configurationController = [[ConfigurationController alloc] initWithNibName:@"ConfigurationPage"
bundle:nil];
[self.window setRootViewController:configurationController];
else
LoginController *loginController = [[LoginController alloc] initWithNibName:@"LoginPage" bundle:nil];
[self.window setRootViewController:loginController];
看过这些链接,但在我的情况下都没有:
-
Changing root view controller of a ios Window
UINavigation pushing a new root controller
【问题讨论】:
【参考方案1】:为什么不直接创建一个UINavigationController
,其中loginController
是rootViewController,然后您可以在其中推送到homePageController
和reportingController
。
只要满足[self checkForConfiguration]
的条件,就将其显示在UINavigationController
的顶部?
[self.navigationController presentViewController:configViewController animated:YES completion:nil];
【讨论】:
在 UINavigationController 的顶部显示 ConfigurationControllerVC 是什么意思?你能更具体一点吗?我是 ios @Jeff 的新手【参考方案2】:我同意@Jeff 使用UINavigationController
作为窗口根视图控制器。
对于您的“特殊”转换(配置 -> 登录、登录 -> 主页、任何 -> 配置,因为您不希望用户能够返回),而不是使用推送或弹出,使用 @ 987654322@。你会得到一个漂亮的动画,替换导航控制器的根视图控制器。
对于您的家 -> 报告您可以像往常一样推送到导航控制器堆栈。
【讨论】:
以上是关于呈现视图控制器时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8 – 在设置关键窗口或关闭并立即呈现另一个视图控制器后快速呈现视图控制器时出现故障
进行模态搜索时出现错误的 ViewController(使用 ECSlidingViewController)