私のアプリには、UIViewControllers A、B、C、D があります。私がすることは、AからB、C、Dへとトラバースします.今、スタックはA、B、C、Dのように読み取ります
次に、スタックの上位 2 項目である C と D を削除します。
[self.navigationController popToViewController:BViewController animated:NO];
NSLog を実行すると、スタックに A,B があります。CIに移動しようとすると、「ネストされたプッシュアニメーションがナビゲーションバーの破損につながる可能性があります」というメッセージが表示されます。なぜこれが起こっているのか、私は困惑しています。誰でもこの問題を解決するのを手伝ってくれませんか。御時間ありがとうございます
編集 BI から C に移動するには、以下のコードを使用します
UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [storybord instantiateViewControllerWithIdentifier:@"C"];
[self.navigationController pushViewController:viewController animated:YES];
このコードが実行された後、D にプッシュする非同期コードがあります。
UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [storybord instantiateViewControllerWithIdentifier:@"D"];
[self.navigationController pushViewController:viewController animated:YES];
スタックは A、B、C、D を読み取ります。ポップすると、問題が発生します
非同期コード
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (error) {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:@"messagehomescreen" forKey:@"lastscreenstatus"];
UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [storybord instantiateViewControllerWithIdentifier:@"D"];
[self.navigationController pushViewController:viewController animated:YES];
}
}];