0

メインビューコントローラーがあり、子ビューを表示しています。子内の設定の1つとして、メインビューコントローラーを再度呼び出す必要があります。それは物事をずっと簡単にするでしょう。

次の場合、階層の問題が発生します。

#define appDelegate (MyAppDelegate *)[[UIApplication sharedApplication] delegate]

[self presentViewController:[appDelegate mainViewController] animated:YES completion:^{}];

子ビューの状態を失わずにmainViewControllerを簡単に呼び出す方法はありますか?

編集

これが私が子ビューを提示する方法です。

ChildViewController *childViewController = [[ChildViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:childViewController];
[childViewController release];
[self presentModalViewController:navigationController animated:NO];
[navigationController release];
4

2 に答える 2

2

すでに表示されている、またはナビゲーションスタックにあるViewControllerを表示することはできません。mainViewControllerとは何ですか?インスタンス化しましたか?画面に追加されましたか?

両方に「はい」の場合は、元に戻す(却下する)か、最初に親から削除してから提示する必要があります。

于 2012-09-29T22:45:32.627 に答える
0

子ビューでは、次のように、アプリケーションデリゲートとそのmainViewControllerプロパティにアクセスできる必要があります。

    MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate];
于 2012-09-29T22:35:16.300 に答える