iOS中模态Model视图跳转和Push视图跳转的需求实现方法
时间:2020-11-30 13:23:48|栏目:iOS代码|点击: 次
本文给大家分享下模态Model视图跳转和Push视图跳转的需求实现。
开前自打小广告:一键合成APP引导页,包含不同状态下的引导页操作方式,同时支持动态图片引导页和静态图片引导页以及视频引导页;GitHub地址: https://github.com/dingding3w/DHGuidePageHUD (多多Star,多多支持😊);
(一)连续两次模态Model视图之后,然后返回首页(A -> B -> C -> A)
①效果图展示:
②核心代码展示:
/** 在C页面的DisMiss方法里面添加一下代码(iOS6.0+) */ if ([self respondsToSelector:@selector(presentingViewController)]){ [self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil]; } else { [self.parentViewController.parentViewController dismissViewControllerAnimated:YES completion:nil]; }
(二)在模态Model推出的视图中Push下一个带导航栏的视图,然后返回首页(A -> B ->C -> A)
①效果图展示:
②核心代码展示:
/** 这里用到的核心处理办法是 */ /** 1.在A控制器模态Model推出B控制器的时候先给B控制器包装一个导航控制器 */ UINavigationController *ANavigationController = [[UINavigationController alloc] initWithRootViewController:[[BViewController alloc] init]]; [self presentViewController:ANavigationController animated:YES completion:nil]; /** 2.在B控制器遵守UINavigationControllerDelegate实现代理协议,隐藏当前控制器的导航栏 */ #pragma mark - UINavigationControllerDelegate - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { // 判断要显示的控制器是否是自身控制器 BOOL isShowMyController = [viewController isKindOfClass:[self class]]; [self.navigationController setNavigationBarHidden:isShowMyController animated:YES]; } #pragma mark - Push出C控制器 [self.navigationController pushViewController:[[CViewController alloc] init] animated:YES]; /** 3.在C控制器里面可直接在返回按钮方法里DisMiss */ [self.navigationController dismissViewControllerAnimated:YES completion:nil];