本文给大家分享下模态model视图跳转和push视图跳转的需求实现。
开前自打小广告:一键合成app引导页,包含不同状态下的引导页操作方式,同时支持动态图片引导页和静态图片引导页以及视频引导页;github地址: https://github.com/dingding3w/dhguidepagehud (多多star,多多支持);
(一)连续两次模态model视图之后,然后返回首页(a -> b -> c -> a)
①效果图展示:
②核心代码展示:
1
2
3
4
5
6
7
|
/** 在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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/** 这里用到的核心处理办法是 */ /** 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视图跳转的需求实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/dingding3w/archive/2016/12/26/6221821.html