3 つのビュー (および関連する ViewController) で構成されるプロセスがあります。ユーザーが 3 番目に到達すると、ステップ #2 を繰り返すことを選択できます。これが発生した場合、ステップ 2 の新しいビュー コントローラーをいくつかの値で作成し、navigationController を使用してそれをプッシュします。ただし、viewControllers配列を修正して、ユーザーが戻った場合にステップ3ではなくステップ1になるようにします。
だから私は自分のviewControllerをプッシュし、次のように無関係なものをスタックから#3と#2を削除します:
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: step2AgainVc.navigationController.viewControllers];
[navigationArray removeObjectAtIndex: navigationArray.count - 3];
[navigationArray removeObjectAtIndex: navigationArray.count - 2];
[step2AgainVc.navigationController setViewControllers:navigationArray animated:NO];
ただし、これにより、次のコンソール ワーリングが発生します。
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
これとは別に、すべてが期待どおりに機能します。これは、App Store に提出する予定の最初のアプリです (以前はエンタープライズ配布のものでのみ機能していました)。そのため、警告が表示されないようにメソッドをリファクタリングしたいと考えています。助言がありますか?