1

いくつかのタブを表示するタブバーアプリケーションがあります。通知の場合、「戻る」を押す機能を備えたビューコントローラにユーザーを誘導したい。私のアプリがナビゲーションコントローラーアプリのみだったとき、AppDelegateで次のコードを使用しました。

UIStoryboard *mainStoryboard = self.window.rootViewController.storyboard;
DetailViewController *detailViewController = (DetailViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"detailViewController"];
[(UINavigationController*)self.window.rootViewController pushViewController:detailViewController animated:NO];

このコードは、アプリをタブバーに変換するまでは正常に機能していました。「self.window.rootViewController」は「UINavigationController」タイプではなくなったため、「pushViewController」を呼び出すと、メソッドが存在しないという例外が生成されるようです。タブバーアプリケーションでこれを機能させる方法はありますか?

ありがとう

4

1 に答える 1

2

通知コントローラーをモーダル(presentViewController:animated:completion:)として表示する必要があります。そのコントローラー内で、通知コントローラーを閉じる方法を提供します。おそらくトップバーのボタンです。

編集:ディミトリーの答えをありがとう私は正しい軌道に乗ることができました。上部のナビゲーションバーと下部のツールバーを保持するために、ちょっとしたトリックをする必要がありました。「UINavigationController」インスタンスを使用して実行しました。コードは次のとおりです。

UIStoryboard *mainStoryboard = self.window.rootViewController.storyboard;
DetailViewController *detailViewController = (DetailViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"detailViewController"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
navigationController.navigationBar.tintColor = [UIColor blackColor];
navigationController.toolbar.tintColor = [UIColor blackColor];
[self.window.rootViewController presentViewController:navigationController animated:YES completion:NULL];
于 2013-02-09T00:12:57.957 に答える