[英]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 。 如何避免從LoginViewController到MainViewController的過渡?
您正在通過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.