0

したがって、NSUserDefaultsキーが見つかった場合、最初のビューコントローラをスキップしようとしています。しかし、それは機能していません。これにセグエを使うのは賢いですか?storybordは初めてです。

警告:ビューがウィンドウ階層にないものを提示しようとしています!

最初のVCのviewDidLoadでこのコードを使用しています:

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
    {

        NSLog(@"not first launch");
        [self performSegueWithIdentifier:@"SegueToNewTrackTraceVC" sender:self];


    }else{
        NSLog(@"First launch");
    }

    NSLog(@"initialViewController loaded");
}
4

2 に答える 2

0

NSUserDefault最初の起動後に更新するのを忘れました。

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
{

    NSLog(@"not first launch");
    [self performSegueWithIdentifier:@"SegueToNewTrackTraceVC" sender:self];


}
else
{
    NSLog(@"First launch");
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
}
于 2013-02-08T14:03:39.807 に答える
0

そのコードが含まれているクラスのコントローラーが表示されようとしており、そのビューがまだウィンドウ階層に追加されていないため、viewDidLoadからセグエを実行することはできません。コードをviewDidAppearAnimated:に配置する必要があります。そのセグエが発生しているのを見たくない場合は、ストーリーボードのセグエの[アニメーション]ボックスのチェックを外します(このボックスはモーダルトランジションに使用できますが、プッシュ用ではないと思います)。

于 2013-02-08T16:15:30.260 に答える