我使用 ios5、Xcode 4、iPad 进行项目。
我的主视图中的标准按钮触发了一个弹出框。我已经在情节提要中设置了弹出框,并带有锚定到标准按钮的 segue。
UIPopoverControllerDelegate 是我的主视图控制器
@interface ViewController : UIViewController <UIPopoverControllerDelegate>
当我在弹出窗口中选择一行时,我想
- 关闭弹出框并
- 调用 UIPopoverControllerDelegate 方法 popoverControllerDidDismissPopover。
这是我的弹出框的表视图委托中的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
myKey = [myArray objectAtIndex:indexPath.row];
[popoverController dismissPopoverAnimated:YES];
// [popoverController.delegate popoverControllerDidDismissPopover];
没有最后一行,所有工作正常,包括行选择和解雇。
但我对最后一行代码感到困惑
[popoverController.delegate popoverControllerDidDismissPopover];
如果未注释此行,我会收到编译器错误:“选择器 popoverControllerDidDismissPopover 没有已知的实例方法”。使用以下代码在主视图控制器中设置弹出框委托:
- (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];
}
}
有什么帮助吗?
谢谢你。