ルートに TableViewController を持つ Mvvmcross アプリがあります。各行は DetailViewController を開きます。それぞれの内部では、EditViewController で編集できます。
したがって、ビューごとに ViewModel があります。私はここで2つの問題を扱っています:
1)DetailViewControllerで、データベースメッセージにサブスクライブします。閉じるときは、この subscribeToken を破棄する必要があります。したがって、DetailViewController が破棄されたときにこれを呼び出す必要があります。しかし、editViewControllerを開くと、DetailViewControllerが聞く必要があるというメッセージが送信されるため、消えたときに呼び出すことはできません。
したがって、ViewDidDisappear メソッドで破棄することはできません。しかし、他のオプションは ViewDidUnload にあります。ただし、このメソッドは MemoryWarnings でのみ呼び出されます。したがって、トークンを破棄していません。それはよくありません。
2) 他の問題は、私が開いている DetailsViewcontroller ごとに、現在の ID を設定に保存する必要があることです。そして、離れるときは、設定から削除する必要があります。したがって、ここでも同じ問題が発生します。ViewDidDisappear で削除すると、EditViewController にいるときに削除されますが、そこに設定する必要があります。しかし、ViewDidUnload でのみ削除すると呼び出されず、この変数を削除する必要があります。
両方のケースで OnDestroy メソッドをいつ呼び出す必要がありますか?
Android では、OnDestroy を呼び出しています。iOSのどこで呼び出す必要がありますか?
よろしくお願いします。