做了款跑步的app,其中部分页面的逻辑如上图。
我再开始跑步页面和跑步中的页面跳转中用的push
方式,跑步中页面到跑步暂停模式,再到成果分享这个页面全部都使用的model
方式,调用的presentModalViewController
方法。
请求,如果我想从分享成果直接返回到开始跑步界面,可不可以连续调用两次dismissViewControllerAnimated
和一次nav的pop
从而实现?
如果有其他方式可以完成这个逻辑,求告知!
【ps:(暂停→跑步)这个箭头忘记画了】
は
dismissViewControllerAnimated
を 2 回呼び出す必要はありません。跑步中VC
にそのNavigationController
のPOP
を呼び出して跑步中VC
をポップアップさせて、一度に 3 つの VC を解放します。ご存知のとおり、実行の一時停止と共有の実行結果が表示されます。これは
跑步中VC
のブランチ (子 VC) に相当するため、親 VC がポップアップすると、それらもすべてポップアップします。VC の 2 つの層がある
跑步成果分享
で跑步中VC
メソッドを逆に呼び出す方法がわからない場合は、ここでいくつかのオプションがあります。通知センターを使用する
NSNotificationCenter
最後の手段でない場合は、コードがわかりにくくなり、理解しにくくなる可能性があるため、あまり使用しないことをお勧めしますプロトコル コールバック デリゲート、従来の方法、少し面倒
分享跑步成果
VC では、[[self presentingViewController] presentingViewController]
はあなたの跑步中VC
です。すでに理解していると思います。頑張ってください。
追伸
ねえ、数え間違えたのかと思った。
実は上で言ったことは正しいのですが、
跑步中VC
にはnavigationController
もありません。親ノードのみが
を持っていますだから、もう一度調整しなければなりません
presentingViewController
presentModalViewController方法
iOS7 以降は非推奨になりました。presentViewController:animated:completion
この方法ということですね!NavigationController
レベルの下の VC は、popToViewController
メソッドを通じて指定された VC にジャンプできますが、現在のフォームを通じて開かれたモーダル スタイルの VC はdismissModalViewController
を通じてのみ消えることができます。