0

我希望我的 iOS 应用程序遵循具有主视图的常见模式,在该主视图中需要注册或登录才能访问该应用程序,因此,如果这是第一次在设备中运行该应用程序或用户未登录,那是显示的视图,否则会显示另一个应用程序视图。主视图中的“注册”和“登录”按钮可以导航到相应的表单,也可以模态显示。一旦用户访问应用程序,它应该是基于标签的,类似于 Twitter 应用程序。

我的问题是:我的应该是什么rootViewController?如果UINavigationController没有用户凭据,则在哪里推送主视图,UITabBarController如果有?或者我应该rootViewController根据是否有凭据在应用程序委托中动态设置?

谢谢

4

2 回答 2

0

嵌入UITabBarControlleraUINavigationController是违反 iOS 设计理念的。我不确定您是否会收到警告或黑屏,但肯定会发生错误。

无需在 之间切换rootViewControllerrootViewController应该是根,在您的情况下,它是连接UITabBarControllerUINavigationControllerviewController使用注册登录表单。如果凭据在那里,只需跳过该视图。

在根之间切换听起来有点不对劲。如果用户退出怎么办?如果用户有多个帐户并登录和退出怎么办?这是很多不需要的开关。

根据 Apple 的建议,UITabBarController 应该始终是您应用的根视图控制器。更有趣的阅读:

在标签栏界面中嵌入导航控制器时,您应该只嵌入 UINavigationController 类的实例,而不是作为 UINavigationController 类的子类的系统视图控制器。尽管系统提供了用于选择联系人、挑选图像和实现其他行为的自定义导航控制器,但这些视图控制器通常设计为模态呈现。有关如何使用特定视图控制器的信息,请参阅该类的参考文档。

关联

于 2013-06-05T07:03:29.863 回答
0

我推荐第二种解决方案,首先以 root 身份使用登录屏幕,然后在登录时更改 rootViewController。您可以以与模态演示动画相同的方式对其进行动画处理。

于 2013-06-05T07:02:04.693 回答