簡體   English   中英

初始ViewController根據情節提要中的Login進行更改

[英]Initial ViewController changes as per Login in storyboard

在我的項目中,情節提要的初始入口是LoginViewController 如果用戶登錄到應用程序,我總是想通過轉義LoginViewCntyroller來顯示應用程序的主ViewController ,我在didFinishLaunchingWithOptions方法中執行了以下代碼。

if ([[NSUserDefaults standardUserDefaults] boolForKey:IS_SIGNIN_CHECK])
    dispatch_async(dispatch_get_main_queue(), ^(void){
        [self showMainScreen];
    });

-(void) showMainScreen
{
   UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:[NSBundle mainBundle]];
   SWRevealViewController  *viewController = (SWRevealViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MainScreenViewID"];
   [self.window makeKeyAndVisible];
   [self.window.rootViewController presentViewController:viewController
                                             animated:NO
                                           completion:nil];
}

一切正常。 但是問題是當它進入MainViewController時 ,它進入LoginViewController幾秒鍾,然后顯示MainViewController 如何避免從LoginViewControllerMainViewController的過渡?

您正在通過LoginViewController呈現主屏幕。 這意味着首先將加載LoginViewController view並顯示給用戶,然后將其重定向到main screen ,無法使用此方案避免它。

但是您可以通過將main screen設置為主窗口的rootViewController來避免它,並且可以正常工作

if ([[NSUserDefaults standardUserDefaults] boolForKey:IS_SIGNIN_CHECK])
    [self showMainScreen];


-(void) showMainScreen
{
   UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:[NSBundle mainBundle]];
   SWRevealViewController  *viewController = (SWRevealViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MainScreenViewID"];
   self.window.rootViewController = viewController;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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