0

iOS で instantiateViewControllerWithIdentifier を使用してビュー コントローラーを表示すると、クラッシュせずにビュー コントローラーを離れることができません。ビューは正常に読み込まれ、そのタスクを実行しますが、ボタンを押してビューを離れようとすると、アプリがクラッシュします。これは、状態が間違っているためですか、それとも別の間違いを犯したためですか?

コード:

- (IBAction)push:(id)sender {

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];
    NSLog(@"story: %@",mainStoryboard.description);

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    ListViewController *controller = (ListViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"ListId"];
    appDelegate.window.rootViewController = controller;

}
4

1 に答える 1

0

以前のルート ビュー コントローラーのボタンを押した結果として、アプリケーションのルート ビュー コントローラーを変更しています。これは、iOS アプリでナビゲーションを行うべき方法ではありません。代わりに、ルート ビュー コントローラーをUINavigationControllerに埋め込んでからpushpopビュー コントローラーを介してアプリ内を移動してみてください。

インターフェイスがナビゲーション パラダイムに適合しない場合は、 を使用できますpresentViewController:animated:completion:。とにかく、View Controller Programming Guideを読む必要があります。これは、ビューを表示するベスト プラクティスを扱っているためです。

于 2013-07-11T14:22:47.970 に答える