簡體   English   中英

iOS開關rootViewController不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM