【发布时间】:2014-07-23 14:02:17
【问题描述】:
必填:
我想通过自定义导航返回按钮项启用 iOS7 滑动返回功能。
当前实施:
经过大量研究,我发现以下解决方案是最好的:
-
如下设置手势识别器的委托
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self; - 这会产生很多错误,正如stackoverflow answer 中提到的那样。为了避免这种情况,继承 UINavigationController 似乎是唯一可行的选择。我按照Keighlblog 中提到的那样做了。
问题:
基本的向后滑动功能可以正常工作,但奇怪的是,有时,被关闭的同一 viewController 在弹出操作完成后再次出现。
即假设导航堆栈看起来像 A -> B。弹出 B 将再次弹出 B。这种情况一直在发生,直到最终 viewController B 真正被解除并且 A 出现。
这发生在所有 viewController 对象中的所有视图上,而不仅仅是特定的视图。
另外,我确保push 方法在所有地方只被调用一次。
我还尝试在每个点记录导航堆栈,但每个 viewController 只有一个实例。
注意事项:
我需要在某些视图中禁用滑动功能。我通过将代码分别写入disable 和enable 中的滑动手势viewDidAppear 和viewDidDisappear 来做到这一点。
请提供您宝贵的建议或解决此问题的方法。谢谢!
【问题讨论】:
-
这个答案真的对你有用吗?
-
在那之后没有尝试过。但现在,我认为使用 View Controller Transitioning API 也可以实现同样的效果。
标签: objective-c ios7 uigesturerecognizer