A
、B
およびという名前の 3 つのビュー コントローラーを作成しましC
た。 C
ビューコントローラーはビューコントローラーのB
サブビューであり、実行中A
にビューがプッシュされB
ます。C
の View Controller デリゲート メソッドviewWillAppear
が呼び出されていません。
質問する
954 次
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 に答える