gpt4 book ai didi

ios - 如何使 UIPopoverPresentationController 在弹出导航时调整大小?

转载 作者:技术小花猫 更新时间:2023-10-29 11:12:54 27 4
gpt4 key购买 nike

我在 iOS 应用程序中使用 UIPopoverPresentationController 作为弹出框。当弹出窗口中的导航 Controller 推送新的 View Controller 时,弹出窗口的大小会调整为该 View Controller 的 preferredContentSize。但是当导航 Controller 从堆栈中弹出一个 View Controller 时,弹出窗口不会调整到以前的大小。我怎样才能做到这一点?

this question 可能重复,但对于现代 UIPopoverPresentationController

更新:参见here例如说明问题的代码。克隆它并在 iPad 模拟器中运行它。点击 Popover 按钮,你会得到一个带有导航 Controller 的弹出窗口。点击 Push bar button 项,您会在堆栈中获得一个更高的新 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;
}
}

它将确保导航 Controller 的首选大小在每次显示的 View Controller 更改时更新。我在您的示例代码上对其进行了测试,它解决了问题。

关于ios - 如何使 UIPopoverPresentationController 在弹出导航时调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32719625/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com