UIPopOverController 有标签属性吗?
我有多个 UIPopOverControllers,如何将它们与委托方法区分开来?
谢谢。
UIPopOverController 有标签属性吗?
我有多个 UIPopOverControllers,如何将它们与委托方法区分开来?
谢谢。
不,tag
属性仅在视图和栏按钮项目上,而不是视图控制器。
但是,所有UIPopoverViewControllerDelegate
方法都传递了一个popoverViewController
变量。您可以通过将该变量与您的弹出框控制器对象进行比较来判断哪个正在调用委托方法。
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
if (popoverController == myFirstPopoverController) {
// do something
}
}
请注意,这适用于 iOS 中的所有委托方法,UITableViewDelegate
方法都接收tableView
变量等等。
根据苹果文档,没有标签属性。tag 属性来自 UIView 的子类,而 UIPopoverController 不是。实际上,UIPopoverController 直接继承自 NSObject。
当您的委托回调运行时,它们将传递调用回调的任何 UIPopoverController 的确切实例。
您可以使用以下两种协议方法在UIPopoverControllerDelegate 文档中观察到这一点:
– popoverControllerShouldDismissPopover:
– popoverControllerDidDismissPopover: