我有一个登录视图,检查是否有默认设置,然后同步数据。如果没有默认设置,则视图等待用户登录。如果有设置并且数据正确同步,则应切换到我的拆分视图。
如果用户输入登录信息,则代码有效。它同步数据,然后切换视图。如果用户已经登录,则会命中该功能并且不会切换视图。
以下是两个路径调用的代码:
-(void)redirect{
NSLog(@"Redirect@");
UISplitViewController *split = [self.storyboard instantiateViewControllerWithIdentifier:@"orders_split"];
[self.view.window setRootViewController:split];
}
如果用户已登录一次,“Redirect @”会在初始加载的日志中显示。我已经确认没有同步错误,它会命中该功能但不执行切换。
我正在从使用导航控制器的标准视图转移到splitview,因此我无法使用手动segue触发器。
答案 0 :(得分:13)
尝试使用app delegate:
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];
}