ビューコントローラーでポップオーバーを表示しています:
UIBarButtonItem *barButton = (UIBarButtonItem*)sender;
SettingsViewController *settingsViewController = [[SettingsViewController alloc] initWithNibName:nil bundle:nil];
[self presentPopoverFromBarButtonItem:barButton andController:settingsViewController andSize:CGSizeMake(RECT_POPOVER_SETTINGS.size.width, RECT_POPOVER_SETTINGS.size.height)];
このView Controller内には、別のView Controllerを押すボタンがあります。
AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:anotherViewController animated:YES];
このView Controllerにはアクションがあり、完了したら次のようにします。
[self.navigationController popViewControllerAnimated:YES];
奇妙な動作は、View Controllerをポップすると、
viewWillAppear
メソッドが SettingsViewController で呼び出されると、ブレークポイントが別の ViewController 内の pop メソッドに戻ります。
これはユニバーサル アプリなので、iPhone でも同じセットアップを使用していますが、最初の UIPopOverController は使用していません。これは iPhone では正しく機能しています (ポップオーバーがない場合、pop メソッドが最初に呼び出され、次に viewWillAppear が呼び出されます)、iPad では、viewWillAppear が最初に呼び出され、次に pop が呼び出されます。
だから私の質問は、誰かがなぜこれが起こっているのか説明できますか?
ありがとう。