ios - 选择最初显示的 ViewController

标签 ios uiviewcontroller nsuserdefaults

我正在尝试根据 NSUserDefaults BOOL 选择 AppDelegate 应该显示的 ViewController。但是 HomeViewController 不显示。 我正在使用 Storyboards,我有自己的 UINavigationController 类。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    [FBLoginView class];
    [FBProfilePictureView class];

    MeuNavigationController *nav = [[MeuNavigationController alloc]init];
    if ([NSUD boolForChave:@"firstLogin"]==false) {
        ViewController *viewC = [[ViewController alloc]init];
        [nav pushViewController:viewC animated:NO];
    }else{
        HomeViewController *viewP = [[HomeViewController alloc]init];
        [nav pushViewController:viewP animated:NO];
    }

    return YES;
}

最佳答案

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    [FBLoginView class];
    [FBProfilePictureView class];

    UIViewController *controller = nil;
    if ([NSUD boolForChave:@"firstLogin"]==false) {
        controller = [[ViewController alloc]init];
    }else{
        controller = [[HomeViewController alloc]init];
    }
    self.window.rootViewController = [[MenuNavigationController alloc] initWithRootViewController:controller];
    [self.window makeKeyAndVisible];

    return YES;
}

您注意到您是根据 Storyboard执行此操作的。您可能还想考虑进行此更改:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    [FBLoginView class];
    [FBProfilePictureView class];

                                                                // Name of storyboard
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

    UIViewController *controller = nil;
    if ([NSUD boolForChave:@"firstLogin"]==false) {
        controller = [[ViewController alloc]init];
                                                                        // Set this in the storyboard's identity inspector
        controller = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
    }else{
        controller = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
    }
    self.window.rootViewController = [[MenuNavigationController alloc] initWithRootViewController:controller];
    [self.window makeKeyAndVisible];

    return YES;
}

但是你问...jakenberg 先生,如何设置他们唯一的 View Controller 标识符?

enter image description here

干杯

关于ios - 选择最初显示的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24708220/

相关文章:

ios - buildMenu 在 AppDelegate 中调用,但在 UIViewController 中不调用

ios - 从不同的 View 更改标签

ios - 尝试在 UIView 中添加 Tableview。我在这里做错了什么?

ios - 在模拟器上卸载应用程序后未清除 NSUserDefaults

iOS 8.0 : NSUserDefaults resets

ios - 自定义标题有零导出

ios - "Operation could not be completed"将 App Transport Security 添加到 watchkit 应用程序后

ios - Swift NSUserDefaults NSArray 使用 objectForKey

ios - 如何在崩溃后自动重启应用程序(就像 Skype 4.0 那样)

ios - 如何在 Swift 中从不同的 ViewController 重新加载 TableView 中的数据