IOS 手势按钮返回指定界面(OC和Swift)
2019-12-09 本文已影响0人
Hahn_z
网上查看了一下、返回指定界面是通过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