在navigationController上向后和向前滑动

时间:2011-05-05 00:38:30

标签: iphone objective-c uinavigationcontroller

每个UIViewController,以rootViewController开头,使用[self.navigationController pushViewController nextView]来推送新视图。滑动工作正常。

如何向前滑动实现相同的行为?我更确切地说,如何在弹出后退或后退按钮后保持UIViewController,所以我可以再次添加它以防止向前滑动?

1 个答案:

答案 0 :(得分:5)

要跟踪视图控制器,您可以执行以下操作:

  • 将实例变量(作为强属性)nextViewController添加到所有视图控制器

  • 每当您按下新的视图控制器时,将nextViewController设置为推送的视图控制器

  • 现在,只要用户向前滑动,您只需按nextViewController即可。但是,首先检查nil。如果currentViewController.nextViewController = nil您知道用户从未导航过这一点,并且您处理得当。您可以忽略向前滑动,也可以向用户发送消息。

要处理滑动本身:

  • 只需将UISwipeGestureRecognizer添加到每个视图控制器的view

  • 然后,当您调整滑动方法时,请检查手势识别器的direction属性。如果是向前滑动,请按上述方法推送nextViewController