在非根位置IOS拆分视图控制器

时间:2014-04-21 06:06:59

标签: ios uisplitviewcontroller

您好我是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; 

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

2 个答案:

答案 0 :(得分:1)

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

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [self performSegueWithIdentifier:@"showLogin" sender:self];
}

用户登录后成功关闭登录屏幕。

希望这有帮助。

答案 1 :(得分:0)

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

相关问题