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

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

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

PHPz
PHPz

学习是最好的投资!

全員に返信(2)
Ty80

dismissViewControllerAnimated を 2 回呼び出す必要はありません。跑步中VC にその NavigationControllerPOP を呼び出して 跑步中VC をポップアップさせて、一度に 3 つの VC を解放します。

ご存知のとおり、実行の一時停止と共有の実行結果が表示されます。これは 跑步中VC のブランチ (子 VC) に相当するため、親 VC がポップアップすると、それらもすべてポップアップします。

VC の 2 つの層がある 跑步成果分享跑步中VC メソッドを逆に呼び出す方法がわからない場合は、ここでいくつかのオプションがあります。

  1. 通知センターを使用する NSNotificationCenter 最後の手段でない場合は、コードがわかりにくくなり、理解しにくくなる可能性があるため、あまり使用しないことをお勧めします

  2. プロトコル コールバック デリゲート、従来の方法、少し面倒

  3. 分享跑步成果VC では、[[self presentingViewController] presentingViewController] はあなたの 跑步中VC です。すでに理解していると思います。

頑張ってください。

追伸
ねえ、数え間違えたのかと思った。

実は上で言ったことは正しいのですが、跑步中VCにはnavigationControllerもありません。

親ノードのみが

を持っています

だから、もう一度調整しなければなりません presentingViewController

いいねを押す +0
左手右手慢动作

presentModalViewController方法 iOS7 以降は非推奨になりました。 presentViewController:animated:completionこの方法ということですね!

NavigationController レベルの下の VC は、popToViewController メソッドを通じて指定された VC にジャンプできますが、現在のフォームを通じて開かれたモーダル スタイルの VC は dismissModalViewController を通じてのみ消えることができます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート