1

アプリの外部でトリガーできるリセット通知があり、データが無効になったため、ユーザーが行っていたことはすべて終了してメイン画面に戻ります。現在、すべてのView Controllerにアンワインドセグエを配置する必要がありますが、この通知が発生するたびにグローバルPerformSegueWithIdentifierをプログラムで呼び出したいだけです。かなりの数のビュー コントローラーがあり、このコードをどこにでも複製する必要があるのは良くありません。新しいビュー コントローラーがプロジェクトに追加されると、メンテナンスの問題になります。これを行う簡単な方法はありますか?

4

1 に答える 1

2

セグエなしで特定のView Controllerにすばやく移動できます。ストーリーボードが 1 つある場合は、View Controller でこれを呼び出します。

self.view.window.rootViewController = [self.storyboard instantiateInitialViewController];

または、ストーリーボード ID でビュー コントローラーを初期化しない

self.view.window.rootViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"StoryboardID"];

アプリに複数のストーリーボードがある場合は、最初に特定のストーリーボードを取得する必要があります。

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
self.view.window.rootViewController = [storyboard instantiateInitialViewController];

コメントが言うように、ナビゲーション コントローラー コンテナーがある場合は、ルート ビュー コントローラーに切り替えるだけです。

[self.navigationController popToRootViewControllerAnimated:YES]
于 2015-02-04T07:21:29.987 に答える