iphone - 在 uipopovercontroller 中推送新的 tableViewController 会导致弹出框调整大小

标签 iphone uipopovercontroller

我找到了这个帖子,但它仍然没有解决我的问题。 UIPopoverController automatically resizing to max height on pushViewController

我有一个 UIPopoverController 来推送导航 Controller 。当我呈现此弹出窗口时,我将 contentSizeForPopover 设置为 340,340。效果很好。在弹出窗口中,我有一个按钮,它将新的 UITableViewController 推送到已经存在的 UIPopoverController 中(下面的 tableViewController 代码)。

UITableViewController *contentView = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
contentView.tableView.delegate = self;
contentView.tableView.dataSource = self;
[self.navigationController pushViewController:contentView animated:YES];
[contentView release];

当tableView被推送时,高度会增长到iPad的最大高度。当我按下后退按钮时,高度仍然是最大高度,并且不会返回到最初创建 UIPopoverController 时定义的 340,340 高度。有没有办法为我创建的新 tableView 再次设置此值?谢谢。

最佳答案

根据我使用 UIPopoverController 对象的经验,每当将新内容添加到弹出窗口时,弹出窗口似乎都会使用最大高度。每次更改内容时,我都会向弹出窗口 Controller 发送一条 setPopoverContentSize:animated: 消息,这当然要求我在每个可能导致弹出窗口调整大小的对象中保留对该弹出窗口 Controller 的引用。您可以在问题中的示例代码之后添加该消息发送,以防止弹出窗口调整大小,但当您从 UINavigationController 堆栈中弹出此 View 时,它仍然可能会调整大小,因此可能会发送另一条消息需要。也许弹出窗口中可能出现的每个 View Controller 都会在其 viewWillAppear: 方法中发送 setPopoverContentSize:animated: 消息。每个还将有一个对弹出 Controller 的引用。

关于iphone - 在 uipopovercontroller 中推送新的 tableViewController 会导致弹出框调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957858/

相关文章:

iphone - ios检测线角度或度数

iphone - 发送json数据到服务器

iphone - 我们可以在不使用 APN 的情况下推送通知吗?

objective-c - 更改通过 UIPopOver (iPad) 呈现的 UIImagePicker 的大小

ipad - 如何在弹出框内显示键盘?,ipad 密码锁定样式

ios - UINavigationBar 中的菜单

ios - locationManager 不适用于 iOS 9

iphone - 报刊亭图标发生变化并出现问题

iphone - 按钮中的 presentPopoverFromRect 超出范围

iphone - WEPopoverController PresentPopoverFromBarButtonItem 导致指定的 UIBarButtonItem 消失