【问题标题】:sliding topViewController left and right stops after tapping on menu view点击菜单视图后左右滑动topViewController停止
【发布时间】:2013-11-24 16:02:44
【问题描述】:

我目前在我的 iOS 7 应用程序中使用 ECSlidingViewController 2。我已经成功实现了 ECSlidingViewController 2,但是当我滑动 topViewController 时我遇到了一个小问题。 当我第一次运行该项目时,从左到右滑动 topViewController 以显示菜单控制器工作正常。但奇怪的是,当我点击“第一屏”、“第二屏”或“主屏”等任何菜单项时,它会永久停止这种滑动行为。

我已经在 github 上上传了我的作品。 https://github.com/rajuptb/ECSlidingViewControllerTest

我在应用程序委托中包含以下内容。 [navigationController.view addGestureRecognizer:self.slidingViewController.panGesture];

我按照 ECSlidingViewController 示例中的 LayoutDemo 来执行此操作。由于一些特定的项目要求,我想从应用程序委托启动 topViewController 和 underLeftViewController。

非常感谢任何帮助、建议,甚至是关于可能是什么问题的猜测。

【问题讨论】:

  • 刚刚下载了我在模拟器和设备上测试你的代码的 git 项目。它在部分中的所有单元格上滑动得很好。你面临的问题是什么?也许您需要重置模拟器并重新启动项目。我看不到任何问题。

标签: ios objective-c slidingmenu ecslidingviewcontroller


【解决方案1】:

您在应用委托中添加到导航控制器的panGesture 将保留在该导航控制器的视图中。您使用该导航控制器初始化滑动视图控制器,因此当该导航控制器是顶视图控制器时平移手势起作用。更改顶视图控制器后,平移手势就消失了(因为它已附加到该导航控制器的视图)。

您需要将panGesture 添加回另一个视图(很可能在新顶视图控制器的视图或其子视图之一上)。一种方法是在 viewDidLoad 中为每个将成为滑动视图控制器的顶部视图控制器的视图控制器。

在您的 First、Second 和 Home 视图控制器中:

#import "UIViewController+ECSlidingViewController.h"

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view addGestureRecognizer:self.slidingViewController.panGesture];
}

这可以在视图上进行平移。如果您想在整个导航控制器视图上启用平移,那么您可以在此处添加:[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture]

ECSlidingViewController 不假设您希望用户如何与之交互。由您决定它在您的应用环境中的工作方式。

【讨论】:

  • 感谢 Michael 快速正确的回复。刚刚按照您的建议更新了源代码并且工作正常。如果有人需要代码,请随时下载。它更新了。 :)
猜你喜欢
  • 2016-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-01
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多