在导航控制器顶部控制器之间滚动

时间:2014-02-13 17:12:55

标签: ios iphone objective-c uiscrollview

我的应用程序有3个主导航控制器,每个都有自己的导航堆栈 我想在这3个视图(导航控制器的视图)之间启用滑动 但是如果用户在其中一个内导航(推送另一个视图控制器),我想禁用滚动到其他导航控制器,直到他将返回到根控制器。

到目前为止,这就是我所做的:
- 我创建了一个容器控制器,其滚动视图为子视图
- 我创建了这3个导航控制器,将它们作为子项添加到容器控制器中,并将其视图添加为scrollview的子视图。

所以现在我可以在这3个导航控制器之间滚动,但问题是当我在其中一个中推动另一个视图控制器时,我仍然可以向左/向右滚动到其他控制器。

我正在为这个问题寻找一些优雅的解决方案,而不仅仅是在viewDidApear / viewDidDisapear中禁用/启用滚动

1 个答案:

答案 0 :(得分:0)

尝试将代码放在其中一个NavigationController委托方法中 - 注意所有NavigationController.delegate都应该设置为self。

- (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;
 }

相关问题