Ios 如何始终加载到同一UIViewController中

Ios 如何始终加载到同一UIViewController中,ios,objective-c,Ios,Objective C,我有一个具有多个视图的应用程序,但我想确保它总是加载到同一个视图中 基本上,应用程序是密码保护的,我需要始终确保它加载到密码视图 我该怎么做呢 谢谢假设您正在使用故事板: 选择要首先在情节提要中加载的视图控制器 确保“实用程序”窗格正在显示(Command-Option-0) 确保显示属性检查器:(Command-Option-4) 选中标有“是初始视图控制器”的框 如果始终希望应用程序启动到同一UIViewController中,则需要设置应用程序的RootViewController。您可以

我有一个具有多个视图的应用程序,但我想确保它总是加载到同一个视图中

基本上,应用程序是密码保护的,我需要始终确保它加载到密码视图

我该怎么做呢


谢谢

假设您正在使用故事板:

  • 选择要首先在情节提要中加载的视图控制器
  • 确保“实用程序”窗格正在显示(Command-Option-0)
  • 确保显示属性检查器:(Command-Option-4)
  • 选中标有“是初始视图控制器”的框

  • 如果始终希望应用程序启动到同一UIViewController中,则需要设置应用程序的RootViewController。您可以在Interface Builder中通过勾选“Is Initial View Controller”框来完成此操作

    或者在
    (BOOL)应用程序中:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)launchOptions
    方法中,您可以将rootViewController设置为

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
        //...
        self.window.rootViewController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"MyLoginViewControllerStoryboardID"]; 
    
        return YES;
    }
    
    请注意,然后必须在Interface Builder中正确设置情节提要ID。就是

    另外,在旁注中,如果您只想显示LoginViewController如果用户当前未登录,您可以执行类似的操作

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    
        BOOL isLoggedIn = [[NSUserDefaults standardDefaults] boolForKey:@"IsLoggedIn"];
    
        NSString *rootStoryboardID;
        if(isLoggedIn) {
            rootStoryboardID = @"LoginViewControllerStoryboardID";
        } else {
            rootStoryboardID = @"MainViewControllerStoryboardID";
        }
    
        self.window.rootViewController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:rootStoryboardID]; 
    
        return YES;
    }
    
    希望有帮助