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



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

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

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

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

尝试将代码放入其中一个 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;
 }

最新更新