2017-02-24 2 views
-3

コード:UINavigationControllerのdonesn't作業正しく

UINavigationController * childNaviVC = [[UINavigationController alloc] initWithRootViewController:self.subVC]; 
[self addChildViewController:childNaviVC]; 
[self.view addSubview:childNaviVC.view]; 
[childNaviVC.view setFrame:CGRectMake(0.0f, 0.0f, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)]; 
self.subVC.view.frame = childNaviVC.view.frame; 
[childNaviVC.view addSubview:self.subVC.view]; 
[childNaviVC didMoveToParentViewController:self]; 

私はサブのViewControllerとしてUINavigationController(childNaviVC)指定されたVCの(subVC)を追加し、へUINavigationControllerのルートのViewControllerを使用されてやりたいですコンテンツを表示する。私が満たさ 問題がUINavigationController VC

赤ビューサイズが enter image description here

おかげ

+0

が、私はちょうどのサイズのオフセットである – Snail

+0

リセットフレームを表示したいですナビゲーションバー? – Snail

+0

動作しないviewwillappear機能でchildrenVCのnavigationbar – shallowThought

答えて

-1

シアンと等しくないの親のルートビュー(subVC)サイズはUINavigationControllerと一致している」であります子VCにviewDidLayoutSubviews関数を追加すると、うまくいきました。 - (無効)viewDidLayoutSubviews {

self.view.frame=CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height); 
} 
+0

コントローラの 'viewDidLayoutSubviews'クラスでこのフレーム設定を書く必要があるかもしれませんか? – CodeChanger

+0

それは 'self.subVC'です – Snail

+0

それは実際の仕事です – Snail

0

1つの問題は、あなたが二重のサブビューのビューを追加しているということです。 SubVCのaddSubViewは、ナビゲーションコントローラ内の自動レイアウト制約を解除します。

変更はあなたの呼び出しは次のように一致し、あなたが得る結果がどのようになるか:

UINavigationController * childNaviVC = [[UINavigationController alloc] initWithRootViewController:self.subVC]; 
[self addChildViewController:childNaviVC]; 
[self.view addSubview:childNaviVC.view]; 
[childNaviVC.view setFrame:self.view.bounds]; 
[childNaviVC didMoveToParentViewController:self]; 
関連する問題