1

ビューコントローラーでポップオーバーを表示しています:

     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 が呼び出されます。

だから私の質問は、誰かがなぜこれが起こっているのか説明できますか?

ありがとう。

4

0 に答える 0