我正在用我的视图控制器呈现一个弹出框:
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。
所以我的问题是,有人可以解释为什么会这样吗?
谢谢。