![](/img/trans.png)
[英]Setting the keyWindow rootViewController not working in iOS8
[英]iOS switch rootViewController not working
我有一個登錄視圖,該視圖檢查是否有默認設置,然后同步數據。 如果沒有默認設置,則視圖等待用戶登錄。 如果有設置並且數據正確同步,則應切換到我的拆分視圖。
如果用戶輸入其登錄信息,則該代碼有效。 它同步數據,然后切換視圖。 如果用戶已經登錄,它將點擊該功能並且不會切換視圖。
這是兩條路徑都調用的代碼:
-(void)redirect{
NSLog(@"Redirect@");
UISplitViewController *split = [self.storyboard instantiateViewControllerWithIdentifier:@"orders_split"];
[self.view.window setRootViewController:split];
}
如果用戶已經登錄一次,則“ Redirect @”將顯示在初始負載的日志中。 我已經確認沒有同步錯誤,它可以執行該功能,但是不執行切換。
我正從帶有導航控制器的標准視圖移至splitview,因此無法使用手動segue觸發器。
嘗試使用應用程序委托:
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];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.