1

次のメソッドを持つView Controllerがあります。

- (IBAction)pickLocation:(id)sender{
    SearchLocationPickerViewController *modalView = [[[SearchLocationPickerViewController alloc] init] autorelease];
    [modalView setModalTransitionStyle:UIModalTransitionStylePartialCurl];
    modalView.searchVC = self;
    [self presentModalViewController:modalView animated:YES];
}

これは完全に正常に遷移し、モーダル ビュー コントローラーが期待どおりに表示されます。ただし、次を使用してモーダル ビューを閉じると (モーダル ビュー コントローラーから実行):

- (IBAction)closeLocationPick:(id)sender{
    [self dismissModalViewControllerAnimated:YES];
}

モーダル ビューは期待どおりに遷移しますが、遷移の最後で、ディスプレイが本当にすばやくちらつきます。ほんの一瞬だけ表示されていたモーダル ビューが表示されます。これは、モーダル ビューの表示/非表示の 10 回のうち 3 回ごとに発生する可能性があります。

これを引き起こしている可能性のあるアイデアはありますか?

4

1 に答える 1

1

私があなたの投稿を正しく読んでいる場合、1 つの問題は、モーダル ビューをそれ自体から閉じている可能性があります。これは機能しますが、Apple が好む方法ではありません。ビューが閉じられると、これがビューのアニメーションに干渉する可能性があると推測しています。

IBAction は、最初にモーダル ビュー コントローラーを作成して提示したモーダル ビュー コントローラーの親でデリゲート メソッドを呼び出す必要があります。モーダル ビュー コントローラーでデリゲート プロトコルを定義し、presentModalViewController: 呼び出しを行うビュー コントローラーでそれを採用します。

モデル ビューを閉じることに関する関連する Apple ドキュメントは次のとおりです。

于 2011-04-20T16:47:01.913 に答える