一貫して再現するのに苦労しているバグが発生しています。オブジェクトをキャストしていないという事実に関係していると思いますが、100%確信はありません。
UINavigationController *navController = [self navigationController];
MainGameViewController *controller = [navController.viewControllers objectAtIndex:2];
controller.phase = @"READY";
objectAtIndex:2 が常に MainGameViewController 型のオブジェクトを返すことはわかっていますが、キャストされていないことが一貫性のないエラーの原因になる可能性はありますか? エラーは、私が提供した 3 行目で発生します。
トレースは次のとおりです。
0 CoreFoundation 0x3a6703e2 __exceptionPreprocess + 158
1 libobjc.A.dylib 0x394fc95e objc_exception_throw + 26
2 CoreFoundation 0x3a673f2c -[NSObject(NSObject) doesNotRecognizeSelector:] + 180
3 CoreFoundation 0x3a672648 ___forwarding___ + 388
4 CoreFoundation 0x3a5ca204 _CF_forwarding_prep_0 + 20
5 AppName 0x0003af56 -[ResultViewController BackToMainGameView] (ResultViewController.m:286)
エラーはクラス ResultsViewController で発生します。