Iphone 条件应用程序启动视图

Iphone 条件应用程序启动视图,iphone,Iphone,我的应用程序是由一个UIDABBARCONTROLLER驱动的,该UIDABBARCONTROLLER为每个活动选项卡中的每个视图嵌入了一个UINavigationController 当应用程序第一次启动时,我想显示一个单独的设置视图,没有一个可见的选项卡。用户完成设置后,将使用选项卡栏将其带到主视图。此外,配置完成后,将无法从应用程序中再次访问初始配置视图,尽管会有一个单独的设置部分,用户可以修改其首选项 这样做的好模式是什么 创建用户无法修改的配置设置。称之为“FirstRun”或类似的东

我的应用程序是由一个UIDABBARCONTROLLER驱动的,该UIDABBARCONTROLLER为每个活动选项卡中的每个视图嵌入了一个UINavigationController

当应用程序第一次启动时,我想显示一个单独的设置视图,没有一个可见的选项卡。用户完成设置后,将使用选项卡栏将其带到主视图。此外,配置完成后,将无法从应用程序中再次访问初始配置视图,尽管会有一个单独的设置部分,用户可以修改其首选项


这样做的好模式是什么

创建用户无法修改的配置设置。称之为“FirstRun”或类似的东西。默认情况下将其设置为true。当用户第一次设置其设置时,请将其设置为false


在启动代码中,检查设置,如果为true,则显示初始设置页面

设置完成后,应在NSUserDefaults内创建一个设置完成变量。如果此变量未设置,则知道它是第一次运行

在AppDelegate中,在实例化UINavigationController之前,请检查设置变量。如果不存在,请将用户带到设置视图。完成后,删除设置视图,并恢复正常代码:

BOOL settingsDone = [[NSUserDefaults standardUserDefaults] boolForKey:@"settingsComplete"];

if (settingsDone){
    SettingsView *mySettingsView = [[SettingsView alloc] init];
    [self.window addSubView:mySettingsView.view];
}

//Set up navigationcontroller here

-(void)settingsDone{
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"settingsComplete"];
    for (UIView *view in self.window.subviews){
        [view removeFromSuperView];
    }
}

只需将“设置”视图中的“完成”按钮挂接到SettingsOne方法即可。

进行设置非常简单,但我希望了解有关如何设置特定控制器/应用程序逻辑的更多信息。就像任何其他视图一样。如果未设置FirstRun(在AppDidLaunch中),您可以通过编程方式创建它,也可以从同一位置加载nib。