1

我有一个登录视图,用于检查是否有默认设置,然后同步数据。如果没有默认设置,视图会等待用户登录。如果有设置并且数据同步正确,它应该切换到我的拆分视图。

如果用户输入他们的登录信息,该代码将起作用。它同步数据,然后切换视图。如果用户已经登录,它会点击该功能并且不会切换视图。

这是两条路径调用的代码:

-(void)redirect{
    NSLog(@"Redirect@");
    UISplitViewController *split = [self.storyboard instantiateViewControllerWithIdentifier:@"orders_split"];
    [self.view.window setRootViewController:split];
}

如果用户已经登录过一次,“Redirect@”会显示在初始加载的日志中。我已经确认没有同步错误,它达到了功能但不执行切换。

我正在从带有导航控制器的标准视图移动到拆分视图,所以我不能使用手动 segue 触发器。

4

1 回答 1

13

尝试使用应用委托:

UISplitViewController *split = [self.storyboard instantiateViewControllerWithIdentifier:@"orders_split"];
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.window.rootViewController = split;

在我的项目中,我用动画来做:

+(void)setRootController:(UIViewController*)controller
              storyboard:(UIStoryboard*)storyboard{

            MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

            [UIView
             transitionWithView:appDelegate.window
             duration:0.5
             options:UIViewAnimationOptionTransitionCrossDissolve
             animations:^(void) {
                 BOOL oldState = [UIView areAnimationsEnabled];

                 [UIView setAnimationsEnabled:NO];

                 appDelegate.window.rootViewController = controller;

                 [UIView setAnimationsEnabled:oldState];
             }
             completion:nil];
}
于 2013-08-19T21:07:28.740 回答