我有一个包含 UINavigationController 的弹出框。我可以很好地显示弹出框,它包含导航控制器就好了。navController 包含一个 tableView,当我选择一个项目时,它会创建一个新的详细视图:
DeviceDetailViewController *detailViewController =
[[[DeviceDetailViewController alloc] initWithNibName:@"DeviceDetailViewController" bundle:nil] autorelease];
然后我将它推送到新的视图控制器:
[self.navigationController pushViewController:detailViewController animated:YES];
这就是问题发生的时候: 在推送新视图后,弹出框会调整到 iPad 上可用的最大高度。
我尝试将xib中所有视图的高度设置为固定高度而不是灵活的。我已经尝试明确设置弹出框的高度。我也尝试过使用不同的视图控制器作为子视图。问题仍然存在:每当一个新视图被推送到导航控制器时,popover想要自动将自身调整到最大高度。
这是一个讨论在推送新视图时尝试故意控制弹出框大小的问题:
我认为这可能是控制大小的蛮力方法。然而,奇怪的是,它实际上会导致一些快速的图形怪癖(就好像视图是新的动画一样),然后继续按上述方式调整大小。
换句话说,某些东西实际上是在强制弹出框达到其最大高度,并且它似乎发生在所有委托方法都被调用之后。
是导航控制器吗?有没有人见过这种东西?