Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIWindow&x27;s rootViewController注意事项_Ios_Uiviewcontroller_Appdelegate_Uiwindow_Rootview - Fatal编程技术网

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的评论时有没有进一步的想法?干杯