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)];

在这个视图控制器内部,我有一个按钮可以推动另一个视图控制器。

AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:anotherViewController animated:YES];

现在在这个视图控制器中我有一个动作,当它完成后我会这样做:

 [self.navigationController popViewControllerAnimated:YES];

现在奇怪的行为是,当我弹出视图控制器时,

viewWillAppear

方法在 SettingsViewController 中被调用,然后断点返回到我的 anotherViewController 中的 pop 方法。

这是一个通用应用程序,所以我在 iPhone 上使用相同的设置,但没有初始 UIPopOverController。这在 iPhone 中运行正常(没有弹出框,首先调用 pop 方法,然后调用 viewWillAppear),但在 iPad 上,首先调用 viewWillAppear,然后调用 pop。

所以我的问题是,有人可以解释为什么会这样吗?

谢谢。

4

0 回答 0