点击菜单视图后,滑动topViewController左右停止

时间:2013-11-24 05:48:12

标签: ios objective-c slidingmenu ecslidingviewcontroller

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

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

我在app delegate中包含了以下内容。 [navigationController.view addGestureRecognizer:self.slidingViewController.panGesture];

我在ECSlidingViewController的示例中执行了LayoutDemo来执行此操作。由于一些特定的项目要求,我想启动topViewController&来自app delegate的underLeftViewController。

非常感谢任何有关问题的帮助,建议或猜测。

1 个答案:

答案 0 :(得分:0)

您添加到app delegate中导航控制器的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不会假设您希望用户与其进行互动。由您来决定它在您的应用程序环境中的工作方式。