无法在 iOS 中使用 Objective C 的 UIPopoverPresentationController _passthroughViews 方法导航到控制器

Unable to navigate to a controller using the UIPopoverPresentationController _passthroughViews method in iOS using Objective C

提问人:sejn 提问时间:4/28/2023 最后编辑:sejn 更新时间:5/11/2023 访问量:82

问:

无法在 iOS 中使用 Objective C 的 UIPopoverPresentationController _passthroughViews 方法导航到控制器。

我正在尝试使用 UIPopoverPresentationController 的 passthroughView 导航到控制器视图。但是我无法设置此导航并出现错误,并且应用程序崩溃了。我该如何解决这个问题?

在这里,我还面临一个错误,弹出框中的最后一项显示为页脚或不可移动的标签,如果我单击它,则没有突出显示, 法典:

SelectorViewController* sv = [[SelectorViewController alloc] initWithStyle:UITableViewStylePlain];
sv.delegate = self;
sv.currentTopic = self.title;
NSLog(@" sv.currentTopic%@", sv.currentTopic);
sv.preferredContentSize = CGSizeMake(300, 500);
sv.modalPresentationStyle = UIModalPresentationPopover;
        
UIPopoverPresentationController *popoverpresentationController = sv.popoverPresentationController;
popoverpresentationController.delegate = self;
popoverpresentationController.sourceView = sender.view;
 [self present view controller:sv animated: YES completion: nil];  
   popover.delegate = self;
   if ([popover respondsToSelector:@selector(setBackgroundColor:)])
         popover.backgroundColor = [UIColor whiteColor];
         [sv release];
iOS Objective-C UIPopOverPresentationController

评论

0赞 Midhun MP 5/5/2023
您能否添加更多详细信息,例如您希望实现的目标或可以重现问题的示例应用程序?不明白_passthroughViews的价值是什么,以及为什么在代码中出现两次
0赞 Larme 5/6/2023
“但是我无法设置此导航并出现错误,应用程序崩溃” 您能分享完整的错误消息吗?
0赞 GeneCode 5/7/2023
您应该添加错误消息,内容如下。我还在那里看到了错别字:[[electorViewController alloc]。缺少“s”?
0赞 sejn 5/8/2023
UINavigationBar 解码为 UINavigationController 的解锁,或者 navigationBar 委托设置不正确。不一致的配置可能会导致问题。

答:

0赞 Marcos Curvello 5/10/2023 #1

您似乎正在尝试从视图控制器显示弹出框并将 passthroughViews 设置为导航控制器的委托。的属性是视图数组。passthroughViewsUIPopoverPresentationController

正确的用法应该是:

// Assuming `view1` and `view2` are views that you want the user to interact with while the popover is visible
popoverpresentationController.passthroughViews = @[view1, view2];

如果要在弹出框显示时导航到另一个控制器,则可以在弹出框的委托方法 .popoverPresentationControllerDidDismissPopover

至于您无法与内容交互的问题,请确保弹出框足够大以完全显示表视图及其单元格。另外,检查 tableview 的 .preferredContentSizecontentSize

评论

0赞 sejn 5/12/2023
我有控制器,我认为两个值之一不同。因为它在弹出窗口中打开。因此,在单击标题时,它不会导航到应用程序