gpt4 book ai didi

ios - 如何从 UIStoryboardPopoverSegue 获取由 UIPopoverController 包装的 View Controller ?

转载 作者:行者123 更新时间:2023-11-28 18:40:02 26 4
gpt4 key购买 nike

我有一个 UISplitViewController,其主 Controller 在 UINavigationController 中嵌入了一个 UIViewController。工具栏按钮负责通过 segue 启动 UIPopoverController。这种弹出 Controller 包装了一个 UIViewController,它也嵌入了一个 UINavigationController,称为 SettingsViewController。

我可以从 UIStoryboardPopoverSegue 获得指向 UIPopoverController 的指针:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UITableViewCell *)sender
{
if ([segue.identifier isEqualToString:@"Settings"]) {
UIStoryboardPopoverSegue *popoverSegue = (UIStoryboardPopoverSegue*) segue;

SettingsViewController *settingsViewController = ... // TODO
settingsViewController.popoverController = popoverSegue.popoverController;
}
}

但我找不到获取内部 SettingsViewController 引用的方法。我不想使用可通过类方法访问的静态字段,这将是一个糟糕的解决方法。

我缺少什么才能正确处理?

感谢您的帮助!

最佳答案

UIPopoverSegue 包含一个 UIPopoverController

UIPopoverController *popoverController = popoverSegue.popoverController;

有了这个你可以很容易的得到contentViewController(在popover中显示的 View )

UINavigationController *contentNC = (UINavigationController *) popoverController.contentViewController;

然后从内容导航 Controller ,你得到实际的 View Controller :

SettingsViewController *settingsVC = [contentNC.viewControllers lastObject];

这是否解决了您的问题?

关于ios - 如何从 UIStoryboardPopoverSegue 获取由 UIPopoverController 包装的 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076509/

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