2014-02-13 69 views
1

我的應用程序有3個主要的導航控制器,每個都有自己的導航堆棧。
我想在這3個視圖(導航控制器的視圖)之間啓用滑動。
但是,如果用戶在其中一個導航(推另一個視圖控制器)內我想禁用滾動到其他導航控制器,直到他將返回到根控制器。導航控制器頂部控制器之間滾動

到現在爲止,這是我做過什麼:
-I創建一個具有滾動視圖作爲子視圖
-I創建者3個導航控制器容器控制器,增加他們的孩子到容器控制器,並加入自己的意見作爲scrollview的子視圖。

所以,現在我可以在這3個導航控制器之間滾動,但問題是當我在其中一個視圖控制器中推入其他視圖控制器時,我仍然可以向左/向右滾動到其他視圖控制器。

我正在尋找這個問題的一些優雅的解決方案,而不是僅僅禁用/啓用滾動在viewDidApear/viewDidDisapear

+0

什麼是禁用/啓用滾動的問題? 爲您的3根控制器製作自定義類,並在其「viewDidApear/viewDidDisapear」中處理它看起來對我來說不是那麼髒...... – KIDdAe

+0

viewDidAppear一直處於活動狀態,因此您希望儘可能減少在其中放置的代碼。 – Paulo

回答

0

嘗試把代碼中的NavigationController委託方法之一 - 請注意所有NavigationController.delegate應被設置爲自我。

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 

     if (viewController == RootviewController1 || viewController == RootvirewController2 || viewController = RootviewController3) { 
      scrollview.ScrollEnabled = YES; } 
    else { 
      scrollview.ScrollEnabled = NO; } 

return; 
}