UIPopover不显示里面的视图

时间:2012-07-25 17:56:23

标签: objective-c ios ipad uiview uipopovercontroller

我正在使用一个popover,它应该只显示一个UIView。但是虽然弹出窗口显示,但它只包含一个空视图(以某种深蓝色着色)。 UIViewController使用的是那里的“PreferencesController”。

我打开弹出窗口的代码如下:

- (IBAction)showPopup:(id)sender {

if (_preferencesController == nil) {
    self.preferencesController = [[PreferencesController alloc]init];
    self.preferencesControllerPopover = [[UIPopoverController alloc] 
                                initWithContentViewController:_preferencesController];
}
[self.preferencesControllerPopover presentPopoverFromBarButtonItem:sender 
                                permittedArrowDirections:0 animated:YES];
}

除此之外,我只有“ preferencesController ”除viewDidLoad以及“self.contentSizeForViewInPopover = CGSizeMake(800.0, 800.0);”之外不包含任何特殊方法

这就是我得到的: Popup

为什么它不能正常工作?

2 个答案:

答案 0 :(得分:2)

可能的问题

800.0宽度对于Popover来说太大了。


documentation for UIViewController

(讨论contentSizeForViewInPopover

  

此属性包含视图控制器在弹出窗口中显示时所需的大小。默认情况下,宽度设置为320磅,高度设置为1100磅。您可以根据需要更改这些值。

     

弹出窗口的建议宽度为320磅。如果需要,您可以返回宽度值大至600点,但不建议这样做。


可能的解决方案

尝试通过调用UIViewController中的presentModalViewController:animated:来模态地呈现你的UIViewController,你希望模态视图控制器在其上面进行动画处理。

答案 1 :(得分:0)

我认为此代码会产生问题:

[self.preferencesControllerPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:0 animated:YES];

因为发件人的类型为id,所以你需要投射它,如:

UIBarButtonItem *but = (UIBarButtonItem *)sender;
 [self.preferencesControllerPopover presentPopoverFromBarButtonItem:but permittedArrowDirections:0 animated:YES];

希望它能解决问题。