短视频商城源码,Swift之捕捉侧滑返回事件并跳转指定控制器

捕捉侧滑返回事件
在短视频商城源码当前控制器中重写以下两个方法即可:

// 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)
    }

第一次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
    }
}
let popVC = self.navigationController?.viewControllers[2]
self.navigationController?.popToViewController(popVC!, animated: true)

你可能感兴趣的:(技术类,java,android,移动开发,ajax,安卓)