令人困惑的UIPopoverController行为

时间:2011-07-24 22:49:19

标签: objective-c uipopovercontroller behavior

我正在尝试设置一个弹出窗口,当我按下按钮时显示UIDatePicker,但是我得到了一些非常令人困惑的行为。我创建了一个视图控制器,它只包含UIDatePicker,在我需要它的类中连接一个,然后将它添加到一个新的UIPopoverController中:

self.timePickerPopoverController = [[UIPopoverController alloc] initWithContentViewController:self.timePickerViewController];

然后我这样呈现:

[timePickerPopoverController presentPopoverFromRect:prepTimeButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

(prepTimeButton是按下的按钮)。但是,我得到以下结果:

Broken UIPopoverController

而不是显示在按下的按钮和目标尺寸旁边(它现在太高了;应该只是日期选择器的大小)。我也尝试给它一个自定义视图,显示正确的位置和大小,但这没有多大帮助(只是将popover移动到屏幕的右半部分)。我做错了什么,如何解决?

2 个答案:

答案 0 :(得分:1)

self.viewprepTimeButton的直接超级视图吗?也许prepTimeButton嵌套在子视图中,在这种情况下,您需要将其用作inView:参数(或转换坐标)。

您是否设置了视图控制器的contentSizeForViewInPopover属性?

答案 1 :(得分:0)

确保在内部视图控制器上设置contentSizeForViewInPopover,在popoverContentSize上设置UIPopoverController