「古い」Tabbarcontroller と MainWindow.xib を持つアプリがあります。アプリを変換するために tabbarcontroller ロジックを削除し、facebook のような「左側のメニュー」タイプを作成する必要があります。問題があります。左側のメニューを tableviewcontroller で既に作成しており、コントローラーを正しく開いたり、閉じたり、プッシュしたりできます...今、各ナビゲーション コントローラーに異なるカスタムナビゲーション バー クラスを挿入したいと考えています (古いバージョンの各ナビゲーション コントローラには、アクティブなビューコントローラに関連して画像を変更するためのカスタム ナビゲーション クラスがありました)。これは、左側のメニューの行の tableview didselect メソッドで使用するコードです。
if (indexPath.row==1) {
DemoViewController *demoController = [[DemoViewController alloc] init];
UINavigationController *navigationController = self.menuContainerViewController.centerViewController;
[navigationController setValue:[[CustomNavigationBar alloc]init] forKeyPath:@"navigationBar"];
NSArray *controllers = [NSArray arrayWithObject:demoController];
navigationController.viewControllers = controllers;
[self.menuContainerViewController setMenuState:MFSideMenuStateClosed];
}
このコードは、スライドを正しく管理し、MFSideMenu 内のビューコントローラーを正しくロードします。カスタム ナビゲーションバー クラスが割り当てられていますが、正しく動作しません。
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
このメソッドが呼び出されることはありません。MFSideMenu が uinavigationcontroller デリゲートを上書きする可能性がありますか? このナビゲーションコントローラーデリゲートメソッドを再び「アクティブ」にするにはどうすればよいですか?