启动时不同的视图控制器

时间:2014-07-08 14:35:32

标签: objective-c storyboard appdelegate

我有一个应用程序,我希望在首次启动时显示教程。为了使用[NSUserDefaults standardUserDefaults],它工作正常。以下是我在AppDelegate.m中实现它的方法

    //Set windows
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    //Set Storyboard
    UIStoryboard* storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard"
                                                         bundle:nil];

    //Check if it's first launch or not
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
    {
        self.homeViewController = [storyBoard instantiateViewControllerWithIdentifier:@"HomeViewController"];
        self.rootVC = self.homeViewController;
    }
    else
    {
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        self.tutoViewController = [storyBoard instantiateViewControllerWithIdentifier:@"TutoViewController"];
        self.rootVC = self.tutoViewController;
    }
    self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:self.rootVC];
    [self.window makeKeyAndVisible];

我的问题是在教程之后,当我按下“HomeViewController”时,我有一个带后退按钮的导航栏。我想隐藏它,但我认为它不是很干净,我想知道它可能是一个更好的技巧。

希望你能帮助我! Thx提前

1 个答案:

答案 0 :(得分:1)

如果您正在使用故事板,为什么不轻松自己并删除上述功能并使用故事板来管理您的观点。将故障板中的UINavigationController设置为起始视图,通过按住控件并拖动到根视图控件然后处理第一个视图控制器的viewWillAppear中的模态弹出逻辑,将所需的第一个视图控制器添加为根视图控制器