无法执行转场

Posted

技术标签:

【中文标题】无法执行转场【英文标题】:Unable to perform segue 【发布时间】:2011-12-28 13:26:21 【问题描述】:

我必须通过单击 tableview 单元格从一个屏幕导航到另一个屏幕,而且我希望将单元格上的数据传输到第二个视图的相应标签上。我已经使用 segue 连接了两个视图。我该怎么做?谢谢

【问题讨论】:

【参考方案1】:

您有 VC1,其中有一个 UITableView,还有 VC2。当点击 VC1 UITableViewCell 时,会显示 VC2 以及来自单元格的信息。示意地,在 VC1 中你实现:

#pragma mark - Table view delegate for VC1
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

    dataForVC2 = [vc1DataSource objectAtIndex:indexPath.row];
    [self performSegueWithIdentifier:segueFromVC1ToVC2 sender:self];


#pragma mark - View lifecycle
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    if ([[segue identifier] isEqualToString:segueFromVC1ToVC2]) 
        vc2 = (VC2ViewController *)[segue destinationViewController];
        vc2.delegate = (id)self;
        vc2.whatIWantFromVC1 = dataForVC2;
    


#pragma mark - VC2 delegate
- (void)VC2ControllerDidFinish:(VC2ViewController *)controller

    dataBackFromVC2 = controller.propertyForVC1;

这就是您管理转场的方式。您还需要为 VC2 实现一个委托协议,这在 WWDC 2011 Apple 视频“故事板简介”中有很好的描述。

要吸收很多概念性信息,但是一旦您了解了 UITableView datasourcedelegate协议UINavigationControllersegues,就会变得复杂UI 变得易于实现。访问 Apple 文档和 WWDC 视频的愉快 2 天将揭开面纱!

【讨论】:

【参考方案2】:

在开始项目开发之前,您确实需要学习 Objective-C。 这是苹果书的链接: http://developer.apple.com/library/mac/documentation/cocoa/conceptual/objectivec/objc.pdf

【讨论】:

问题错了吗???我只需要知道你是怎么做到的

以上是关于无法执行转场的主要内容,如果未能解决你的问题,请参考以下文章

无法执行转场

无法以编程方式执行 segue

无法以编程方式执行 unwind segue

无法在侧边菜单中进行转场

如何在转场目标视图控制器中执行转场

动画完成后执行转场