4

BというUIViewControllerがある場合。UIViewControllerCをBのサブビュー/子ビューコントローラーとして追加する場合。次に、DをBの子ビューコントローラーとして追加します。次に、BからDを削除します。この場合、後でCのviewDidAppearを呼び出す必要がありますか?

私が尋ねる理由は、viewDidAppearへのBの呼び出しを受け取っていないためです。Bが解雇されたときに何かをするつもりです。

4

3 に答える 3

5

viewDidAppearモーダルビューを閉じるときに呼び出されません。モーダルビューは、ビューの上のビューと考えてください。

于 2012-07-18T04:43:28.717 に答える
2

私が思うに、サブビューの追加または削除中にviewDidAppearは呼び出されません。この背後にある理由は、サブビューとしてビューに追加/削除するオブジェクトがいくつかあるためです。この場合、viewDidAppear が何度も呼び出されますが、これは適切なメカニズムではありません。viewDidAppear は、現在のビューにクラス オブジェクトをロードし、画面を別のクラスのビューに移動してから前のクラスに戻るときに呼び出されます。つまり、ナビゲーションコントローラーを新しいビューにプッシュしてから古いビューにポップすると、viewDidAppear が呼び出されます。

于 2012-07-18T04:59:04.250 に答える
2

私が今テストviewDidAppearしたように、ビューが画面に表示されると呼び出されます。1pxでも。また、他の方法でカバーしてsubView再度発見した場合でも、このメソッドは再度呼び出されません。

subViewこれは、最初に出現した後にのみ呼び出すことを意味します。削除して再度追加しない限り。「C」の質問viewdidAppearでは、「D」を削除した後、再度電話をかけることはありません。

于 2012-07-18T06:27:11.833 に答える