NSUserDefaults для представления окна только при первом запуске - PullRequest
1 голос
/ 23 июня 2011

Я пытаюсь получить окно для отображения (что оно успешно делает) при первом запуске, в этом окне есть кнопка (для целей тестирования), которая устанавливает bool firstLaunch = NO. по какой-то причине после нажатия кнопки вид не закрывается.

делегат приложения

userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:firstLaunch forKey:@"firstLaunch"];
newViewController = [[NewView alloc]init];
newViewController.appDelegateOutlet = self;
[userDefaults synchronize];
if ([userDefaults boolForKey:@"firstLaunch"]) {
    NSLog(@"first launch");
   [_window addSubview:newViewController.view];
    [userDefaults synchronize];
}
if (![userDefaults boolForKey:@"firstLaunch"]) {

    [userDefaults synchronize];
    NSLog(@"not first launch");

Кнопка

-(IBAction)dismissFirstLaunch:(id)sender{
NSLog(@"%@",appDelegateOutlet);
appDelegateOutlet.firstLaunch = NO;
[appDelegateOutlet.userDefaults setBool:appDelegateOutlet.firstLaunch forKey:@"firstLaunch"];
[appDelegateOutlet.userDefaults synchronize];
NSLog(@"%@",[appDelegateOutlet.userDefaults objectForKey:@"firstLaunch"]);
}

исправлено:

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

userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:firstLaunch forKey:@"firstLaunch"];
newViewController = [[NewView alloc]init];
newViewController.appDelegateOutlet = self;
[userDefaults synchronize];
if ([userDefaults boolForKey:@"firstLaunch"]) {
    NSLog(@"YE BOY!!");
   [_window addSubview:newViewController.view];
    [userDefaults synchronize];

}
else 

    [self continueLaunch];

return YES;
}

1 Ответ

2 голосов
/ 23 июня 2011

Может быть, я слепой, но в действии вашей кнопки нет ни одной строки кода, которая бы указала, чтобы она отклоняла представление? Это не экстрасенс - как бы он узнал, чтобы отклонить точку зрения, если вы не скажете это!

PS Вы также столкнетесь с проблемами с вашей логикой, чтобы определить, является ли это первым запуском - держу пари, что представление отображается каждый раз:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...