Swift之捕捉侧滑返回事件并跳转指定控制器
【摘要】
捕捉侧滑返回事件
在当前控制器中重写以下两个方法即可:
// OC
- (void)willMoveToParentViewController:(nullable UIViewController ...
捕捉侧滑返回事件
在当前控制器中重写以下两个方法即可:
// OC
- (void)willMoveToParentViewController:(nullable UIViewController *)parent NS_AVAILABLE_IOS(5_0);
- (void)didMoveToParentViewController:(nullable UIViewController *)parent NS_AVAILABLE_IOS(5_0);
// Swift
override func willMove(toParent parent: UIViewController?) {
super.willMove(toParent: parent)
}
override func didMove(toParent parent: UIViewController?) {
super.didMove(toParent: parent)
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 第一次push进来的时候两个方法都会调用,parent的值不为空。
- 当开始使用系统侧滑的时候,会先调用willMove,而parent的值为空。
- 当滑动结束后返回了上个页面,则会调用didMove,parent的值也为空,如果滑动结束没有返回上个页面,也就是轻轻划了一下还在当前页面,那么则不会调用didMove方法。
- 想要在侧滑返回后在上个页面做一些操作的话,可以在didMove方法中根据parent的值来判断。
跳转指定控制器
if (!parent) {
var tmp = NSMutableArray(array: self.navigationController!.viewControllers) as! [UIViewController]
var minIndex: Int = 0
for (index, vc) in tmp.enumerated() {
if vc.isKind(of: SafeCenterViewController.self) {
minIndex = index + 1
break
}
}
if minIndex != 0 {
tmp.removeSubrange((minIndex)..<(tmp.count - 1))
self.navigationController?.viewControllers = tmp
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
let popVC = self.navigationController?.viewControllers[2]
self.navigationController?.popToViewController(popVC!, animated: true)
- 1
- 2
文章来源: blog.csdn.net,作者:Serendipity·y,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/Forever_wj/article/details/108365377
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)