1

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

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

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

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

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

4

1 回答 1

0

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不假设您希望用户如何与之交互。由您决定它如何在您的应用程序的上下文中工作。

于 2013-11-24T08:02:44.740 回答