所以我在标签栏控制器中有两个标签。
选项卡1是rootController。 tab 2是一个tableviewcontroller,它获取用户信息(如注册)
现在发生了什么:
首先显示标签1,我需要点击标签2。
我需要什么:
当我打开应用程序时,我希望应用程序从Tab 2开始(如果应用程序中没有用户)。这应该是第一个屏幕。然后继续(如果有用户)它应该使用选项卡1作为根控制器和第一个屏幕。
答案 0 :(得分:2)
执行tabBarController.selectedIndex = 1;
或tabBarController.selectedViewController = loginViewController;
在application:didFinishLaunchingWithOptions:
,
if ( [users count] > 0 ) {
self.tabBarController.selectedIndex = 1;
} else {
self.tabBarController.selectedIndex = 0;
}
这假设users
包含您的所有用户信息。 Seva建议使用模态视图控制器绝对是处理Login
的更好方法。如果用户指的是配置文件,那么这也不是一个糟糕的方法。
答案 1 :(得分:2)
您真的希望用户能够在不完成登录的情况下切换到根选项卡吗?选项卡UI表明选项卡或多或少在功能上彼此独立;对于所需的登录,模态视图控制器是一个更好的比喻。
答案 2 :(得分:1)
您可以检查用户的一种方法是执行以下操作:
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstTime"])
{
//login view show
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstTime"];
}
或者,如果您使用的是数据库,则可以进行查询,然后根据该查询执行某些操作。
但我同意Seva,您可能希望以其他方式显示视图,这样就不会让用户在完成登录之前跳转视图。