Вы должны создать переменную завершения настроек внутри 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.