【问题标题】:Split view controller at non root position IOS在非根位置IOS拆分视图控制器
【发布时间】:2014-06-05 04:29:33
【问题描述】:

您好,我是 IOS 开发新手。我正在开发我想使用拆分视图的小型应用程序。但是那个拆分视图不是我的根视图。我的应用程序以登录开始,而不是拆分视图。登录后,我想启动我的主视图,即拆分视图控制器。所以这是我的问题,如果我将主视图设置为根视图,即我的应用程序的起点,它可以正常工作。但是如果我将我的登录控制器设置为根控制器,那么它会给出异常。在我的 AppDelegate 中,我设置了以下内容:

   UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;

    UINavigationController *masterNavigationController = [splitViewController.viewControllers objectAtIndex:0];
    SidePannelViewController *controller = (SidePannelViewController *)masterNavigationController.topViewController;
    controller.splitViewController = splitViewController;
    splitViewController.delegate = (id)controller; 

一旦我将主视图设置为根控制器,它就可以正常工作。如何解决这个问题呢?需要帮忙。我想将我的登录屏幕保持为正常的登录视图控制器,并在登录后启动拆分视图控制器。谢谢。

【问题讨论】:

    标签: ios uisplitviewcontroller


    【解决方案1】:

    您可以将 LoginScreen 作为模态显示在拆分视图控制器的顶部,否则您可以先将 LoginScreen 设置为 rootViewController,然后将 SplitViewController 替换为 rootController。

    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
    
        [self performSegueWithIdentifier:@"showLogin" sender:self];
    }
    

    一旦用户成功登录,就会关闭登录屏幕。

    希望这会有所帮助。

    【讨论】:

    • 感谢您的快速重播。但是你能解释一下怎么做吗?
    【解决方案2】:

    您可以在用户未登录时将LoginViewController设置为根视图控制器,如果用户已登录,则将根更改为拆分视图。只需在didFinishLaunchingWithOptions方法中检查用户是否已登录在与否,并相应地设置你的根。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多