首页 > 关于iOS页面间的跳转。

关于iOS页面间的跳转。

做了款跑步的app,其中部分页面的逻辑如上图。
我再开始跑步页面和跑步中的页面跳转中用的push方式,跑步中页面到跑步暂停模式,再到成果分享这个页面全部都使用的model方式,调用的presentModalViewController方法。
请求,如果我想从分享成果直接返回到开始跑步界面,可不可以连续调用两次dismissViewControllerAnimated和一次nav的pop从而实现?
如果有其他方式可以完成这个逻辑,求告知!

【ps:(暂停→跑步)这个箭头忘记画了】


不需要调用两次dismissViewControllerAnimated ,直接让跑步中VC调用其NavigationControllerPOP跑步中VC弹出就可以一次性释放三个VC了。

原理你懂吧,跑步暂停和分享跑步成果是present出来的,相当于是跑步中VC的枝(子VC),所以父VC弹出,就都弹出了。

如果你不知道如何在跑步成果分享这个垮了两层的VC去反向调用跑步中VC的方法,我这里有几个方案:

  1. 使用通知中心 NSNotificationCenter 如果不是万不得已,不建议过多使用,容易让代码变得晦涩难懂

  2. 协议回调delegate,传统方法,稍微麻烦一点

  3. 分享跑步成果VC中,[[self presentingViewController] presentingViewController]就是你的跑步中VC,相信你已经懂了。

祝你好运。

PS
小伙子, 我以为我数错了。

其实我上面说的是对的,只是跑步中VC也是没有navigationController的。

他的父节点才有

所以 还要再调一次 presentingViewController


presentModalViewController方法自iOS7就弃用了!你是指presentViewController:animated:completion这个方法吧!

NavigationController层级下的VC可以通过popToViewController这个方法跳转到指定VC,而通过present形式打开的Modal样式的VC,只能通过dismissModalViewController来消失。

【热门文章】
【热门文章】