【问题标题】:Dismiss View when Label is pressed in TableViewCell在 TableViewCell 中按下标签时关闭视图
【发布时间】:2019-01-31 00:15:38
【问题描述】:

我在表格视图单元格中有一个带有 TapGesture 的标签,如果它被按下,它应该关闭嵌入在导航控制器中的视图控制器。

通常我会这样做:

_ = navigationController?.popViewController(animated: true)

self.dismiss(animated: true)

但这在表格视图单元格类中不起作用。

如果有人可以帮助我,那就太好了!

【问题讨论】:

  • 你的回调被调用了吗?您的标签是否“启用用户交互”? UILabel 的默认值为 false。
  • 这在表格视图单元格类中不起作用,但在使用该表格视图单元格的视图控制器类中。
  • “这不起作用”真的没有帮助。怎么了?代码被调用了吗? (设置断点。)您的手势识别器调用的完整方法是什么?
  • 请展示实现手势识别器的代码

标签: swift uitableview uinavigationcontroller dismiss


【解决方案1】:

为了让它工作,你应该把这个义务传递给管理你的 tableView 的 viewController。因此,在您的 tableViewCell 类上方声明一个协议,其中包含委托(在本例中为持有您的 tableView 的 ViewController)在调用时应实现的函数。因此,当在 ViewController 中调用委托时,如果 ViewController 以模态方式呈现,则将其关闭,如果它被推送,则将其弹出,因此您上面提到的方法之一应该可以工作。如果您不知道自定义协议是如何工作的,请尝试阅读这篇文章https://medium.com/@aapierce0/swift-using-protocols-to-add-custom-behavior-to-a-uitableviewcell-2c1f09610aa1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多