我UIPopoverPresentationController
在iOS应用中使用弹出窗口。当弹出式窗口中的导航控制器推送新的视图控制器时,弹出式窗口将调整为该视图控制器的大小preferredContentSize
。但是,当导航控制器将视图控制器弹出堆栈时,弹出窗口的大小不会重新调整为先前的大小。我该怎么做呢?
这个问题可能重复,但是是现代的UIPopoverPresentationController
。
更新:请参见此处的示例代码来说明问题。克隆它并在iPad模拟器中运行它。点击弹出按钮,您将获得带有导航控制器的弹出窗口。点按“推杆”按钮项,您会在堆栈上获得一个新的更高的VC(大小在导航栏中)。弹出,它并不会缩小到原来的大小。
添加此行:
self.navigationController.preferredContentSize = self.preferredContentSize;
到您的viewWillAppear:
方法,这样它现在将如下所示:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if (self.navigationController)
{
UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithTitle:@"Push" style:UIBarButtonItemStylePlain target:self action:@selector(onPush)];
self.navigationItem.rightBarButtonItem = item;
self.navigationItem.title = NSStringFromCGSize(self.preferredContentSize);
self.view.backgroundColor = [UIColor lightGrayColor];
self.navigationController.preferredContentSize = self.preferredContentSize;
}
}
它将确保每次显示的视图控制器更改时,导航控制器的首选大小都会更新。我在您的示例代码上对其进行了测试,并解决了该问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句