我使用UINavigationController&amp ;;为iPhone开发了一个静态库。推动一些UIViewControllers。
我正在实施一种方法,允许ipad开发人员将我的库包含在他们的iPad应用程序中。为此,我想在UIPopoverController中显示我的库控制器,其大小为iphone。
我已经开发了,但是每次我推动一个新的viewController时,Popover都会以一种非常奇怪的方式调整自己:
我已经检查了我的视图控制器(通过界面构建器),并且AutoResize行为已停用。
有人有解决方案吗?
答案 0 :(得分:5)
UIViewController
显示的UIPopoverViewController
需要设置此属性:
contentSizeForViewInPopover
表示其显示大小,UIPopoverViewController
将根据该属性的值调整大小。例如:
- (void)viewDidLoad
{
[super viewDidLoad];
self.contentSizeForViewInPopover = self.view.frame.size;
// Do any additional setup after loading the view from its nib.
}
答案 1 :(得分:0)
据我了解您的问题,每当您将控制器推送到UINavigationController
时,弹出框就会调整大小,UIPopoverController
是popoverControllerReference
的根控制器。我不能说为什么会发生这种情况但是你可以通过向你的视图控制器发送你的popoverController(popoverContentSize
的引用,你可以创建一个单例引用)并在你推动时手动设置popoverControllerReference.popoverContentSize = CGSizeMake(320, 460);
来摆脱它控制器:{{1}}
答案 2 :(得分:0)
接受的答案使用的方法现已在iOS 7.0中弃用。
我遇到了同样的问题,并且使用popoverContentSize取得了成功。
以下内容:
[_popoverSegue.popoverController setPopoverContentSize:CGSizeMake(320.0f, 460.0f)];
其中_popoverSegue是UIStoryboardPopoverSegue的实例
希望这有助于未来的访客...
(对不起,我应该评论接受的答案,但我没有足够的声誉......)