我有一个通向 popOver 的按钮,所有这些都是在 Interface Builder 中创建的。当我按下它之外的某个地方时,popOver 会关闭,但我还想在 popOver 中实现一个按钮来执行此操作。
我找到了 Giorgio Barchiesi 可以追溯到 2011 年的解决方案,但是我没有实现它。这是他的解决方案:
在源视图控制器的实现文件中:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue destinationViewController] isKindOfClass:[MyDestViewController class]]) {
MyDestViewController* viewController = (MyDestViewController*)[segue destinationViewController];
UIStoryboardPopoverSegue* popoverSegue = (UIStoryboardPopoverSegue*)segue;
[viewController setPopoverController:[popoverSegue popoverController]];
}
}
在目标视图控制器的头文件中:
@property (weak, nonatomic) UIPopoverController* popoverController;
在目标视图控制器的实现文件中:
@synthesize popoverController;
相同的文件,只要您想关闭弹出框:
[popoverController dismissPopoverAnimated:YES];
按下按钮时,我可以调用最后一个函数。我的问题是 XCode[viewController setPopoverController:[popoverSegue popoverController]]
在线给我一个错误:ARC Semantic Issue: No known class method for selector 'setPopOverController'
我错过了什么?