Popover segue到静态单元格UITableView会导致编译错误

leh*_*058 9 xcode uitableview ios5 uistoryboardsegue

我目前有一个带两个视图控制器的应用程序.第一个是具有嵌入式表视图的视图控制器,该视图控制器具有动态单元.第二个是带有静态单元的表视图控制器.如果我从选择动态表的一个单元格到静态表格视图控制器(使用Push或Modal样式设置)添加一个segue,我可以看到segue按预期工作.但是,当我将样式更改为Popover时,我得到以下编译错误:

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x4004c75a0 <IBProxyObject: 0x400647960> => anchorView => <IBUITableViewCell: 0x400f58aa0>>
Run Code Online (Sandbox Code Playgroud)

有没有其他人遇到过这个问题,或者有人知道这个错误信息可能意味着什么?在编译时发生这种情况似乎很奇怪,除非Popover不支持静态表视图控制器...

leh*_*058 15

我想出了如何做到这一点.您无法从故事板中将其连接起来,但可以通过以下方式以编程方式执行:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad"
                                                 bundle:nil];
    UITableViewController *detailController = [sb instantiateViewControllerWithIdentifier:@"TableSettingDetails"];

    self.popoverController = [[UIPopoverController alloc] initWithContentViewController:detailController];

    self.popoverController.popoverContentSize = CGSizeMake(320, 416);
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [self.popoverController presentPopoverFromRect:cell.bounds inView:cell.contentView
                          permittedArrowDirections:UIPopoverArrowDirectionAny
                                          animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

只需确保在控制器中有对popover的引用,否则会立即处理 - 导致其他一些有趣的异常.