こんにちはスタックオーバーフラワー
デザートの質問があります。
MainMenuViewController クラスがあります。アプリの右側にメニューを表示するメソッドがあります。このメソッドは、アプリのさまざまな部分から呼び出されます。実際には、すべてのナビゲーション コントローラーで、そのメソッドをナビゲーション バーの右ボタンのターゲットとして設定する必要があります。
これにより、プッシュされたすべてのView Controllerに次のようなコードが表示されます。
UIViewController *root = [self.navigationController.viewControllers objectAtIndex:0];
[self.topBarMenuButton addTarget:((RecordsViewController*)root).mainMenuController action:@selector(launchMenu:) forControlEvents: UIControlEventTouchUpInside];
また、すべてのルート コントローラーにメイン メニューへの参照を与える必要があります。
私はまったく好きではありません。私がしたいのは次のようなものです:
[self.topBarMenuButton addTarget:[MainMenuController sharedInstance] action:@selector(launchMenu:) forControlEvents: UIControlEventTouchUpInside];
したがって、アプリのすべてのビュー コントローラーは、ルート ビュー コントローラーまたはアプリ デリゲートからメイン メニューを取得しなくても、メイン メニューにアクセスできます。
これは良い考えですか?私には問題ないように思えますが、共有View Controllerインスタンスの使用に不利な点があるかどうかはわかりません。
ありがとう、幸せなコーディング