将Swipe Gesture添加到项目中的所有View控制器

时间:2014-12-29 08:58:12

标签: ios objective-c uiviewcontroller swipe-gesture

我有50个带后退按钮的视图控制器。现在我需要为项目中的所有视图控制器添加从左到右的滑动手势。当触发滑动时,我需要为各个视图控制器回调btn单击事件。向每个视图控制器添加滑动手势很困难。有没有其他方法来做到这一点,只需对视图控制器进行最小的更改。    提前谢谢。

此致 Bharath G

3 个答案:

答案 0 :(得分:3)

那么这些其他人告诉你为什么你可能不需要这样做,但假设你这样做(不使用UINavigationController ||支持pre iOs7 ..)那么肯定最简单的方法就是添加到所有这些中一个新的UIViewController子类,在viewDidLoad或类似的东西中添加swipeRecogniser,然后修改你的50个其他控制器中的每一个,使它们都从这一个继承(即抽象超类..)

我总是在一个50左右的项目中有一个UIViewController上面的抽象超类,显然有很多代码可以共享

答案 1 :(得分:2)

创建一个YourViewController类并在viewDidLoad方法中实现SwipeGesture方法。

在50个viewcontrollers .h文件中:

@interface ViewController : YourViewController

让所有50个viewControllers继承自YourViewController

答案 2 :(得分:0)

如果后退按钮可见,它应该自动工作。如果您正在显示leftBarButtonItem而不是后退按钮,则默认情况下不会显示该手势。此外,如果您使用的是UINavigationBar而不是UINavigationController,则不会看到此功能。

如果您正在使用UINavigationController并且您的视图控制器的导航项包含leftBarButtonItem,则仍然可以通过将代理附加到导航控制器的interactivePopGestureRecognizer来为导航控制器的左右手势滑动添加功能。

注意:iOS 7中引入了“向后滑动”功能(我希望您使用iOS 7或更高版本开发应用程序)