gpt4 book ai didi

ios - 从 UITableViewCell 转到 ViewController 不工作

转载 作者:行者123 更新时间:2023-11-28 13:11:22 24 4
gpt4 key购买 nike

我在 UITableViewCellUIViewController 之间设置了一个 segue。我的理解是,如果我设置从原型(prototype)单元格到 UIViewController 的 Show segue,则在我的 中点击其中一个单元格时将显示 UIViewController UITableView,但这对我来说并没有发生。让它工作的唯一方法是覆盖 tableView didSelectRowAtIndexPath,然后调用 performSegueWithIdentifier

为了对此进行测试,我将一个带有 UITableViewControllerUIViewController 的快速项目放在一起。当我在原型(prototype)单元格和 UIViewController 之间创建一个 segue 时,它​​按应有的方式工作。所以我知道这是可能的,我只是不确定是什么导致了我的实际项目中的问题。

没有太多代码可以展示。我的原型(prototype)单元格是一个来自 xib 文件的自定义单元格,但我也尝试给它一个 UITableViewCell 类,但没有任何区别。

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

最佳答案

让我们弄清楚一些重要的事情

  1. performSegueWithIdentifier: sender: 是 UIViewController 的一种方法,因此为了从单元格执行转场,您需要在单元格中声明 VC 的弱属性,如下所示

@property (nonatomic, weak) UIViewController *segueController;

通过

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

关于ios - 从 UITableViewCell 转到 ViewController 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31153320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com