iOS中模态Model视图跳转和Push视图跳转的需求实现方法

时间:2022-01-15 14:38:09

本文给大家分享下模态model视图跳转和push视图跳转的需求实现。

  开前自打小广告:一键合成app引导页,包含不同状态下的引导页操作方式,同时支持动态图片引导页和静态图片引导页以及视频引导页;github地址: https://github.com/dingding3w/dhguidepagehud (多多star,多多支持);

  (一)连续两次模态model视图之后,然后返回首页(a -> b -> c -> a)

  ①效果图展示:

iOS中模态Model视图跳转和Push视图跳转的需求实现方法

  ②核心代码展示:

?
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)

  ①效果图展示:

iOS中模态Model视图跳转和Push视图跳转的需求实现方法

  ②核心代码展示:

?
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