如何始终加载到相同的UIViewController中

时间:2013-06-08 22:36:30

标签: ios objective-c

我有一个包含多个视图的应用,但我想确保它始终加载到同一个视图中。

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

我该怎么做呢。

由于

2 个答案:

答案 0 :(得分:2)

如果您总是希望应用程序启动到同一个UIViewController,则需要设置应用程序的RootViewController。您可以通过勾选“是初始视图控制器”

的框来在界面生成器中执行此操作

enter image description here

或在(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中,您可以将rootViewController设置为

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    //...
    self.window.rootViewController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"MyLoginViewControllerStoryboardID"]; 

    return YES;
}

请注意,您必须在Interface Builder中正确设置storyboard ID。那是

enter image description here

另外,在旁注中,如果您要显示 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;
}

希望它有所帮助!

答案 1 :(得分:0)

假设您正在使用故事板:

  1. 选择要在故事板中首先加载的视图控制器。
  2. 确保显示实用程序窗格(Command-Option-0)
  3. 确保显示属性检查器:(Command-Option-4)
  4. 选中标记为“是初始视图控制器”的框