我使用ios5,Xcode 4,iPad开展项目.
我在主视图中使用标准按钮触发了弹出窗口.我在故事板中设置了popover,其中segue固定在标准按钮上.
UIPopoverControllerDelegate是我的主视图控制器
@interface ViewController : UIViewController <UIPopoverControllerDelegate>
Run Code Online (Sandbox Code Playgroud)
当我在popover中选择一行时我想要
这是我的popover的表视图委托中的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
myKey = [myArray objectAtIndex:indexPath.row];
[popoverController dismissPopoverAnimated:YES];
// [popoverController.delegate popoverControllerDidDismissPopover];
Run Code Online (Sandbox Code Playgroud)
没有最后一行,所有工作正常,包括行选择和解散.
但我对最后一行代码感到困惑
[popoverController.delegate popoverControllerDidDismissPopover];
Run Code Online (Sandbox Code Playgroud)
如果此行未注释,则会出现编译器错误:"没有已知的选择器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];
}
}
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
谢谢.
您缺少该属性.您正在寻找的是:
[popoverController.delegate popoverControllerDidDismissPopover:popoverController];
Run Code Online (Sandbox Code Playgroud)
有什么特别的原因要你打电话吗?我相信当你解雇popover时应该为你调用.
| 归档时间: |
|
| 查看次数: |
2221 次 |
| 最近记录: |