2

私はこの質問を数回見ましたが、実際には答えられませんでした。ストーリーボードを使用するときに、起動されたすべてのView Controllerを閉じて、最初のView Controllerに戻る(たとえば、スポーンされたView Controller内のアクションから)許容できる/クリーンな方法があるかどうか疑問に思っています。

デリゲートの使用方法は知っていますが、最初のView Controllerに、生成される可能性のあるすべてのViewControllerのデリゲートを実装させたくありません。代わりに、すべてをクリーンアップして、アプリのどこからでも最初のViewControllerに戻るホームボタンが欲しいのです。

考え?

編集:わかりやすくするために、UINavigationControllerを使用していないと仮定します。

EDIT2:appDelegateで行うように、アプリのどこからでも「初期ビューコントローラー」のメソッドにアクセスすることは可能ですか?

4

2 に答える 2

2

これはいつでも実行できるはずです。IBAction に貼り付けて、ボタンに接続するだけです :)

[self.navigationController popToRootViewController];
于 2012-05-27T14:32:31.940 に答える
1

結局、シングルトンを使用しました。かなりうまくいくようです。

初期View Controllerの初期ロード時に、View Controllerをシングルトンのプロパティとして設定しました。次に、アプリ内の任意のビュー コントローラーの任意のアクション メソッドで次のコードを実行して、すべてのビュー コントローラーを閉じて、最初のビュー コントローラーに戻ることができます。

initialViewControllerManager *ivcManager = [initialViewControllerManager sharedInstance];
LPViewController *ivc = ivcManager.initalViewController;    
[ivc dismissModalViewControllerAnimated:YES];

「正しい」答えではないかもしれませんが、うまくいくようです。そして、私のシーンの複雑さを考えると、UINavigationControllers だけに頼るのは非常に複雑です。

于 2012-05-28T00:24:39.633 に答える