2015-04-20 158 views
1

我想要在屏幕上顯示靜態控件(底部的4個按鈕&頂部的NotificationBar)。這些控件應該可用於所有屏幕。在單一視圖控制器中切換多個視圖控制器iOS

我想在這兩個控件之間顯示相應的頁面(單擊時)。 (即,)在通知欄和按鈕之間。

那麼我該怎麼做呢?

我不想在每個視圖控制器中添加這些控件,這使得更復雜。

我瞭解了實現容器視圖。但不知道這是否是我的問題的正確解決方案。那麼請提出我解決我的問題?

佈局在下面給出:


   Notification Bar 

< < < < < < < < <相應的頁面顯示>>>>>>>>>>


按鈕1個按鈕2將Button3將Button4


所以建議我解決這個問題?

回答

0

這裏的情景:

  1. 把不同的標籤(0〜3),以您的按鈕
  2. 具有相同IBAction
  3. 將您的按鈕在你上面的控制器,存儲每個的viewController在array
  4. IBAction方法中,調用[_myViewControllersArray objectAtIndex:button.tag];並顯示相應的視圖。
  5. 用戶[_containerView addSubview:controller.view];
+0

希望它能解決我的問題。我會嘗試這個解決方案。謝謝... :) –

+0

那麼,它是否符合您的需求? –

2

如果你的內容視圖的UIViewController的視圖,當你做addSubview:,請嘗試以下代碼:

[controller willMoveToParentViewController:_containerViewController]; 
[_containerViewController.view addSubview:controller.view]; 
[_containerViewController addChildViewController:controller]; 

如果你從刪除視圖控制器的一些看法其超強的觀點,你應該做的:

[controller removeFromParentViewController];

[controller.view removeFromSuperview];

[controller willMoveToParentViewController:nil];

這樣的方式可以讓UIViewController中的你的外表方法正確調用。

+0

感謝您的回覆。你能詳細解釋一下..? –

+0

willMoveToParentViewController:&didMoveToParentViewController:實際上應該配對。但addChildViewController:會做didMoveXXXX和removeFromXXX:會做willMoveXXX:,所以你只需要按照上面的方法做。你可以在didMoveToParentViewController:method的討論下看到apple doc中的細節。 – user3349433

相關問題