[英]Segue from UITableViewCell to ViewController not working
我在UITableViewCell
和UIViewController
之间设置了segue。 我的理解是,如果我将显示单元从原型单元格设置为UIViewController
,则在点击UITableView
中的单元格之一时将显示UIViewController
,但这对我而言并非如此。 使它工作的唯一方法是重写tableView didSelectRowAtIndexPath
,然后调用performSegueWithIdentifier
。
为了测试这一点,我将一个快速项目与一个UITableViewController
和一个UIViewController
整合在一起。 当我在原型单元和UIViewController
之间创建UIViewController
,它按照应有的方式工作。 所以我知道有可能,我只是不确定是什么导致我的实际项目出现问题。
没有太多代码可显示。 我的原型单元是一个来自xib文件的自定义单元,但是我也尝试给它提供一个UITableViewCell
类,这没有什么区别。
有没有人遇到过这样的问题应该起作用的情况,但是没有吗? 如果是这样,您如何解决?
让我们澄清一些重要的事情
performSegueWithIdentifier: sender:
是UIViewController的一种方法,因此要从单元格执行segue,您需要在单元格中声明VC的弱属性,像这样 @property(非原子的,弱的)UIViewController * segueController;
通过执行您的动作
[self.segueController performSegueWithIdentifier:@"segue_id" sender:self];
didSelectRowAtIndexPath
有以下好处:您的segue逻辑属于controller而不是视图 (因为uitableviewcell是uiview的子级)。 因此,我建议您使用此方法进行搜索或使用视图层次结构进行操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.