我使用ios5,Xcode 4,iPad开展项目。
我在主视图中使用标准按钮触发了弹出窗口。我已经在故事板中设置了popover,其中segue固定在标准按钮上。
UIPopoverControllerDelegate是我的主视图控制器
@interface ViewController : UIViewController <UIPopoverControllerDelegate>
当我在popover中选择一行时我想
这是我的popover的表视图委托中的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
myKey = [myArray objectAtIndex:indexPath.row];
[popoverController dismissPopoverAnimated:YES];
// [popoverController.delegate popoverControllerDidDismissPopover];
没有最后一行,一切正常,包括行选择和解散。
但我对最后一行代码感到困惑
[popoverController.delegate popoverControllerDidDismissPopover];
如果此行未被注释,则会出现编译器错误:“没有已知的选择器popoverControllerDidDismissPopover实例方法”。使用以下代码在主视图控制器中设置popover委托:
- (void) prepareForSegue:(UIStoryboardPopoverSegue *) segue sender:(id) sender {
if ([[segue destinationViewController] isKindOfClass:[RGBViewController class]]) {
RGBViewController* viewController = (RGBViewController*)[segue destinationViewController];
UIStoryboardPopoverSegue* popoverSegue = (UIStoryboardPopoverSegue*)segue;
[viewController setPopoverController:[popoverSegue popoverController]];
[[popoverSegue popoverController] setDelegate:self];
}
}
任何帮助?
谢谢。
答案 0 :(得分:5)
您缺少该属性。您正在寻找的是:
[popoverController.delegate popoverControllerDidDismissPopover:popoverController];
你有什么特别的理由要打电话吗?我相信当你解雇popover时应该给你这个。