我的应用程序由嵌入了UINavigationController的UITabBarController驱动,用于每个活动选项卡中的每个单独视图。
第一次启动应用时,我想提供一个没有可见TabBar的单独设置视图。用户完成设置后,将使用TabBar将它们带到主视图。此外,一旦配置,初始配置视图将无法再从应用程序内访问,尽管将有一个单独的设置部分,用户可以修改他们的首选项。
这样做的好方法是什么?
答案 0 :(得分:1)
创建用户无法修改的配置设置。称之为“FirstRun”或类似的东西。默认情况下将其设置为true。当用户第一次设置其设置时,将其设置为false。
在启动代码中,检查设置,如果为true,则显示初始设置页面。
答案 1 :(得分:1)
您应该在完成设置后在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];
}
}
只需将设置视图中的完成按钮挂钩到settingsDone方法。