私はNavigation.PushAsync
を使用して新しいページに移動し、作業が完了したらPopAsync
を呼び出して前のページに戻ります。問題は、最初のページが新しいページをポップしてから何か作業を続けるのを待つ必要があることです。だから私はこのようにやっている:私は、新しいページが表示されたときDoOtherWork
部分がすぐに実行されることが観察さPushAsyncは実行されずに実行されます
// source page:
DoWork();
await Navigation.PushAsync(new TargetPage()); <== this does not wait for the page!??
DoOtherWork();
、それは却下されていないまで。しかし、ここではawait
を使用しています。つまり、非同期タスクが完了したら、後の部分を継続する必要があります。なぜNavigationタスクを待たずに実行されますか?
に同じメッセージを購読する新しいページが表示されたときか、却下されたときにタスクが終了していますか?あなたは後者を想定しています。しかし、あなたの前提は正しいですか?あなたが描いていることから、私は前者が当てはまると思います。 – Fildor
タスクは、ページの表示を管理するだけで、解雇を待つことはありません。それでは、どのようにしてナビゲーションが2つのページを結びつけますか – fluter
こちらの例をご覧ください:https://developer.xamarin.com/api/member/Xamarin.Forms.INavigation.PushAsync/p/Xamarin.Forms.Page/解雇を待つためには、Popを待つ必要があるようです。 Returnのドキュメンテーション・テキストは私にとっては少し混乱しています。例と矛盾するようですか?多分それは私だけです。 – Fildor