objective-c - 关于iOS页面间的跳转。
PHPz
PHPz 2017-04-17 17:24:51
0
2
282

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

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

PHPz
PHPz

学习是最好的投资!

全部回覆(2)
Ty80

不需要調用兩次dismissViewControllerAnimated ,直接讓跑步中VC調用其NavigationControllerPOP跑步中VC彈出就可以一次釋放三個VC了。 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

原理你懂吧,跑步暫停和分享跑步成果是present出來的,相當於是跑步中VC的枝(子VC),所以父VC彈出,就都彈出了。

如果你不知道如何在跑步成果分享這個垮了兩層的VC去反向調用跑步中VC的方法,我這裡有幾個方案:

使用通知中心 NSNotificationCenter 如果不是萬不得已,不建議過多使用,容易讓程式碼變得晦澀難懂

  • #🎜🎜#協定回呼delegate,傳統方法,稍微麻煩一點#🎜🎜#
  • #🎜🎜#在分享跑步成果VC中,[[self presentingViewController] presentingViewController]就是你的跑步中VC,相信你已經懂了。 #🎜🎜#
  • #🎜🎜#祝你好運。 #🎜🎜# #🎜🎜#PS
    小伙子, 我以為我數錯了。 #🎜🎜# #🎜🎜#其實我上面說的是對的,只是跑步中VC也是沒有navigationController的。 #🎜🎜# #🎜🎜#他的父節點才有#🎜🎜# #🎜🎜#所以 還要再調一次 presentingViewController#🎜🎜# #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#
    左手右手慢动作

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

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

    NavigationController層級下的VC可以透過popToViewController這個方法跳到指定VC,而透過present形式開啟的Modal樣式的VC,只能透過dismissModalViewController來消失。 #🎜🎜#
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板