另一个基本问题

时间:2011-06-14 19:19:12

标签: iphone objective-c cocoa-touch uinavigationcontroller uitabbarcontroller

所以我在标签栏控制器中有两个标签。

选项卡1是rootController。 tab 2是一个tableviewcontroller,它获取用户信息(如注册)

现在发生了什么:

首先显示标签1,我需要点击标签2。

我需要什么:

当我打开应用程序时,我希望应用程序从Tab 2开始(如果应用程序中没有用户)。这应该是第一个屏幕。然后继续(如果有用户)它应该使用选项卡1作为根控制器和第一个屏幕。

3 个答案:

答案 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,您可能希望以其他方式显示视图,这样就不会让用户在完成登录之前跳转视图。