7

iPhone には tableview があり、セルに触れると、presentModalViewController を呼び出す 1 つのメソッドがあり、別のビューを開き、電子メールやこの種のものを使用します。ユーザーがキャンセル ボタンを押すと、前のビューの viewWillAppear メソッドが呼び出されます。ここまでは順調ですね。しかし、iPad では、viewWillAppear はビューが最初に表示されたときにのみ呼び出されます。これがバグなのか、それとも正しいのかは誰にもわかりません。私は実装しようとしました

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{

成功しませんでした。

デリゲートメソッドを最初から実行せずにこれを修正する方法を知っている人はいますか? 前もって感謝します

4

3 に答える 3

3

モーダルに表示されたビュー コントローラーは iPad の基になるビューを完全に覆うとは限らないため、モーダル ビュー コントローラーが閉じられたときに viewWillAppear メソッドは起動しません。デリゲート メソッドを使用して、元のビュー コントローラーにモーダル ビュー コントローラーのアクションをアナウンスします。最善の方法だと思います。

于 2010-12-01T02:24:37.280 に答える
0

読んだり、テストしたり、実際に役立つものではなく、推測に基づいていますが、NDAの対象外です...

ModalViewController を提示するときに viewWillDisappear が呼び出されていますか? モーダル ビューが元のビューを完全に隠しているとは思わないため、(iPhone とは異なり) 両方が同時に存在する可能性があります。

于 2010-02-26T08:18:43.020 に答える
0

バグである可能性があります。ここでアップルにバグレポートを提出します。

于 2010-02-25T20:41:33.780 に答える