swift学习

IOS 手势按钮返回指定界面(OC和Swift)

2019-12-09  本文已影响0人  Hahn_z

OC传送门
Swift传送门

网上查看了一下、返回指定界面是通过popToViewController方法返回的
但是通过popToViewController方法返回手势返回的时候是不行的

OC

    /**
    通过循环找到指定控制器返回
    @param MainViewController 返回的指定控制器
    */
    
    for (UIViewController *vc in self.navigationController.viewControllers) {
        if ([vc isKindOfClass:[MainViewController class]]) {
            [self.navigationController popToViewController:vc animated:YES];
        }
    }

Swift

        /**
        通过循环找到指定控制器返回
        @param MainViewController 返回的指定控制器
        */
        
        for vc in (self.navigationController?.viewControllers)! {
            if vc.isKind(of: MainViewController.self) {
                self.navigationController?.popToViewController(vc, animated: true)
            }
        }

效果图


1.gif

可以通过循环找指定的控制器、删除它、还可以让手势和按钮返回指定界面

OC

    /**
    通过循环找到指定控制器删除
    @param ViewController1 返回的指定控制器
    */
    
    for (UIViewController *vc in self.navigationController.viewControllers) {
        if ([vc isKindOfClass:[ViewController1 class]]) {
            [vc removeFromParentViewController];
        }
    }

Swift

        /**
        通过循环找到指定控制器删除
        @param ViewController1 返回的指定控制器
        */
        for vc in (self.navigationController?.viewControllers)! {
            if vc.isKind(of: ViewController1.self) {
                vc.removeFromParent()
            }
        }

效果图


2.gif

PS: 当你自定义系统导航栏返回按钮的时候、需要重写一下UINavigationController
不然没有办法手势返回
具体请看demo

上一篇 下一篇

猜你喜欢

热点阅读