【问题标题】:Another basic question另一个基本问题
【发布时间】:2011-06-14 19:19:12
【问题描述】:

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

tab 1 是根控制器。 tab 2 是一个tableviewcontroller,它获取用户信息(比如注册)

现在会发生什么:

Tab 1 首先出现,我需要点击 tab 2。

我需要什么:

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

【问题讨论】:

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


    【解决方案1】:

    tabBarController.selectedIndex = 1;tabBarController.selectedViewController = loginViewController;

    application:didFinishLaunchingWithOptions:

    if ( [users count] > 0 ) {
        self.tabBarController.selectedIndex = 1;
    } else {
        self.tabBarController.selectedIndex = 0;
    }
    

    这假设users 拥有您的所有用户信息。 Seva 建议使用模态视图控制器绝对是处理Login 的更好方法。如果用户指的是个人资料,那么这也不是一个坏方法。

    【讨论】:

    • 在我的 ApplicationDelegate 中,我设置了我的 UITabBarController *rootController,并将它添加到 subbview 作为 [_window addSubview:rootController.view];我应该做 rootController.tabBarController.selectedIndex = 1; ??
    • 好吧。分配 self.rootController.tabBarController.selectedIndex = 1;似乎仍然首先带来第一个标签
    • FML。谢谢,兄弟。工作:D
    • 好的,你认为我可以编程以在 [users count] =0 时隐藏所有其他选项卡吗?因此,当应用程序新启动时,用户别无选择,只能使用选项卡 2 在获取其他选项卡之前输入详细信息...?
    • 你应该看看setViewControllers:animated:。从选项卡中的一个视图控制器开始,当用户输入详细信息后,使用该方法设置视图控制器。
    【解决方案2】:

    您真的希望用户能够在不完成登录的情况下切换到根选项卡吗?选项卡 UI 表明选项卡在功能上或多或少相互独立;对于所需的登录,模式视图控制器是一个更好的比喻。

    【讨论】:

      【解决方案3】:

      您可以检查用户的一种方法是执行以下操作:

      if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstTime"])
      {
          //login view show
          [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstTime"];
      }
      

      或者,如果您使用的是数据库,则可以进行查询,然后根据该查询进行操作。

      但我同意 Seva,您可能希望以其他方式显示视图,以防止用户在完成登录之前跳转视图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-16
        • 2012-09-24
        • 1970-01-01
        • 2011-11-01
        • 2011-11-26
        • 2011-05-05
        • 2013-05-20
        • 1970-01-01
        相关资源
        最近更新 更多