繁体   English   中英

从UITableViewCell到ViewController的Segue无法正常工作

[英]Segue from UITableViewCell to ViewController not working

我在UITableViewCellUIViewController之间设置了segue。 我的理解是,如果我将显示单元从原型单元格设置为UIViewController ,则在点击UITableView中的单元格之一时将显示UIViewController ,但这对我而言并非如此。 使它工作的唯一方法是重写tableView didSelectRowAtIndexPath ,然后调用performSegueWithIdentifier

为了测试这一点,我将一个快速项目与一个UITableViewController和一个UIViewController整合在一起。 当我在原型单元和UIViewController之间创建UIViewController ,它按照应有的方式工作。 所以我知道有可能,我只是不确定是什么导致我的实际项目出现问题。

没有太多代码可显示。 我的原型单元是一个来自xib文件的自定义单元,但是我也尝试给它提供一个UITableViewCell类,这没有什么区别。

有没有人遇到过这样的问题应该起作用的情况,但是没有吗? 如果是这样,您如何解决?

让我们澄清一些重要的事情

  1. performSegueWithIdentifier: sender:是UIViewController的一种方法,因此要从单元格执行segue,您需要在单元格中声明VC的弱属性,像这样

@property(非原子的,弱的)UIViewController * segueController;

通过执行您的动作

[self.segueController performSegueWithIdentifier:@"segue_id" sender:self];
  1. 最常见的方法-使用didSelectRowAtIndexPath有以下好处:您的segue逻辑属于controller而不是视图 (因为uitableviewcell是uiview的子级)。 因此,我建议您使用此方法进行搜索或使用视图层次结构进行操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM