に我々はUINavigationViewController
ルートviewController
としてAppDelegate
にありますダブルUINavigationBarはUITabBarController
Restore *callRestore=[[Restore alloc]initWithNibName:@"Restore" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:callRestore];
self.window.rootViewController = self.navigationController;
我々が推進している新viewController
(TabViewController
)上記からのリストア:私たちが追加されている。このTabViewController
で
callTabView=[[TabViewController alloc] initWithNibName:@"TabViewController" bundle:nil];
[self.navigationController pushViewController:callTabView animated:YES];
をUITabBarController
はプログラムでサブビューとして表示され、この中でUITabBarController
が表示コントローラとして5 UINavigationBarController
を持っています:
NSArray* controllers = [NSArray arrayWithObjects:navControllerDashboard, navControllerAccounts, navControllerTransation,navControllerCallDisplayReports,navControllerMore, nil];
self.tabBarController.viewControllers = controllers;
self.tabBarController.delegate = self;
self.tabBarController.view.frame = self.view.frame;
[self.view addSubview:self.tabBarController.view];
我々は両方landscape
とportrait
モードの上に2 UINavigationBar
を取得しているこれらの5 UINavigationViewController
から任意のビューを回転しています。
以下の画像を確認してください。
とdidRotateFromInterfaceOrientationは、これらの5 UINavigationViewControllerビューからの呼び出しされていません。
助けが必要ですか?
UIViewController *parent = ...;
UIViewController *child = ...;
[child willMoveToParentViewController: parent];
[parent addChildViewController: child];
[parent.view addSubview: child.view];
[child didMoveToParentViewController:parent];
を。これは、子ビューコントローラにすべてのイベントを伝播し、可能性予期しない動作を削除します:あなたは次の操作を実行する必要が手動でサブビューとしてあなたが別のものにビューコントローラを追加
callTabViewはUIViewControllerです。私たちはtabBarControllerを初期化し、次のようにtabBarControllerを追加しています:self.tabBarController = [[UITabBarController alloc] init]; [self.view addSubview:self.tabBarController.view]; – varun