Ios UIWindow&x27;s rootViewController注意事项
我已经阅读了几篇关于切换窗口的Ios UIWindow&x27;s rootViewController注意事项,ios,uiviewcontroller,appdelegate,uiwindow,rootview,Ios,Uiviewcontroller,Appdelegate,Uiwindow,Rootview,我已经阅读了几篇关于切换窗口的rootViewController的帖子,有时有人说在应用程序的整个生命周期中保持一个相同的rootViewController比切换好,其他帖子与在应用程序的某个点更改rootViewController有关。我对此感到困惑,在苹果的文档中找不到任何关于这一点的建议 当应用程序中可能有不同的内容视图控制器时,最佳做法是什么?例如,假设您有一个选项卡式应用程序(UIDABBARCONTROLLER),您希望首先显示一个用于登录或注册的欢迎视图(UINavigati
rootViewController
的帖子,有时有人说在应用程序的整个生命周期中保持一个相同的rootViewController
比切换好,其他帖子与在应用程序的某个点更改rootViewController
有关。我对此感到困惑,在苹果的文档中找不到任何关于这一点的建议
当应用程序中可能有不同的内容视图控制器时,最佳做法是什么?例如,假设您有一个选项卡式应用程序(UIDABBARCONTROLLER
),您希望首先显示一个用于登录或注册的欢迎视图(UINavigationController
):
1) 使用固定的rootViewController
接近。我认为您应该将UITabBarController
设置为rootViewController
,因为应用程序的核心是选项卡式的,但是如果需要用户凭据,那么在UITabBarController
中设置一个UINavigationController
,隐藏选项卡栏,要推送欢迎视图并导航到登录/注册视图控制器
2) 进近切换rootViewController
。首先,如果需要用户凭据,请将UINavigationController
设置为rootViewController
,以显示欢迎视图并导航到登录/注册,并且,一旦成功提供了用户凭据或成功创建了帐户,将rootViewController
切换到UITabBarController
以显示核心选项卡式应用程序
如果最好的通用方法是根据需要切换rootViewController
,那么您会考虑哪些内存管理方面的注意事项?我是否需要在AppDelegate(UITabBarController
和UINavigationController
)中有两个strong
属性?切换rootViewController
时,视图控制器之间的转换情况如何:它是平滑的,还是应该设置动画
提前感谢切换rootViewController的方法非常适合。首先,如果需要用户凭据,请将
UINavigationController
设置为rootViewController以显示欢迎视图并导航到登录/注册,并且在成功提供用户凭据或成功创建帐户后,将rootViewController切换到uitabarcontroller
以显示核心选项卡式应用程序
如果要在tabbarcontroller中存储用户凭据。将它们存储在主捆绑包中或在文档目录中创建的
NSUserDefaults
或plist
中 这可能会结束,因为你的问题基本上是询问人们的意见。我会选择选项1。当您需要用户登录时,将登录屏幕显示为根控制器上的模式视图控制器。当他们成功登录时将其关闭。无需切换根控制器。@rmaddy谢谢。我认为,如果只有一个登录视图,那么在根目录顶部显示登录视图将是最好的方式,但在这种情况下,我没有登录的唯一视图,我有一个带有两个按钮的欢迎视图和一个欢迎视图->登录/注册视图导航层次结构,那么,以模态的方式呈现这样的层次结构是否也是最好的方式呢?@rmaddy在回答AppsDev的评论时有没有进一步的想法?干杯