iOS中模态Model视图跳转和Push视图跳转的需求实现方法
程序员文章站
2023-12-22 09:58:28
本文给大家分享下模态model视图跳转和push视图跳转的需求实现。
开前自打小广告:一键合成app引导页,包含不同状态下的引导页操作方式,同时支持动态图片引导页和静...
本文给大家分享下模态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];
以上所述是小编给大家介绍的ios中模态model视图跳转和push视图跳转的需求实现方法,希望对大家有所帮助