0

ABおよびという名前の 3 つのビュー コントローラーを作成しましCた。 CビューコントローラーはビューコントローラーのBサブビューであり、実行中AにビューがプッシュされBます。Cの View Controller デリゲート メソッドviewWillAppearが呼び出されていません。

4

2 に答える 2

1

問題は IOS のバージョンにあります。

別のビュー コントローラーのビュー (viewControllerC.view) をサブ ビューとして既存のビュー コントローラー (viewControllerB) に追加するviewWillAppear:()、ios 5.0 以前のバージョンではビュー コントローラー C が起動しません。呼び出す必要がある場合は、デバイスの iOS バージョンを確認して、このメソッドを手動で呼び出します。viewDidAppear:()

iOS のバージョンを確認し、次のようにデリゲート メソッドを手動で呼び出すことができます...

 [viewControllerB addSubview:viewControllerC.view];
 if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) 
    {
        [viewControllerC viewWillAppear:YES];
        [viewControllerC viewDidAppear:YES];
    }
于 2013-03-28T09:06:43.537 に答える
0

CのView ControllerはBのサブビューだとおっしゃいました。

次のようなことをしていると思います:

UIViewController *viewControllerB = [[UIViewController alloc] init];
UIViewController *viewControllerC = [[UIViewController alloc] init];

//add C's view to B
[[viewControllerB view] addSubview:[viewControllerC view]];

その場合、viewController C を B の子 viewController として追加する必要があります。

//you need to set C to be a child view controller of B
[viewControllerB addChildViewController:viewControllerC];

これにより、適切な viewWill/viewDid メソッドが正しく呼び出されるようになります。

于 2013-03-28T09:42:02.260 に答える