この質問が以前に投稿されたことは知っていますが、私が見つけた回答はこのケースに従っていません
Xcode 4.5.1 で 2 年前に作成されたアプリを実行すると、例外が発生します。
これは:
例外 'UIViewControllerHierarchyInconsistency'、理由: 'ビューは、一度に最大 1 つのビュー コントローラーにのみ関連付けることができます! < UIView: 0xaa9c4f0; フレーム = (0 0; 320 367); 自動サイズ変更 = W+H; layer = > は <TabledReservationListController: 0xaa89e80> に関連付けられています。このビューを <UIViewController: 0x9e9e310> に関連付ける前に、この関連付けをクリアしてください。
次に、このようないくつかの回答で
モーダル ビュー コントローラーを表示しようとすると、UIViewControllerHierarchyInconsistency が発生する
質問の画像に見られるように、nibファイルのviewcontrollerを削除することをお勧めします。
問題は、この場合、viewController がないことです。これは、TabledReservationListController の nib ファイルです。
これは、アプリがクラッシュするコードの一部です。
- (void)viewDidLoad {
[super viewDidLoad];
[navigation setDelegate: self];
[self createReservationListController];
[reservationListController viewWillAppear: NO];
// in this line below
[[navigation topViewController] setView: [reservationListController view]];
[reservationListController viewDidAppear: NO];
[[self view] addSubview: [navigation view]];
CGRect r = [[self view] frame];
r.origin.y = 0;
[[navigation view] setFrame: r];
[reservationListController setNavigationController: navigation];
}
- (void)createReservationListController {
TabledReservationListController *res_ =
[[TabledReservationListController alloc] initWithNibName: @"TabledReservationListView"
bundle: nil];
[self setReservationListController: res_];
[res_ release];
[[[self navigation] topViewController] setTitle: @"Available Tables"];
}
誰かが助けてくれるかもしれません、よろしく。