【问题标题】:displaying pictures when tapping a tableview cell点击表格视图单元格时显示图片
【发布时间】:2015-07-22 20:20:58
【问题描述】:

我最近制作了一个充满单元格的表格视图。我想知道我是否可以,当我点击一个单元格时会显示特定图片而不是空白屏幕

我尝试将单元格与不同的图像视图链接,但我不能使用 tableview 来做到这一点,那么所需的代码是什么

我知道我应该使用 prepareForSegue 语句

覆盖 prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {}

我只是不知道该输入什么

我只想在点击其中一个单元格时添加图像显示

感谢您的帮助

【问题讨论】:

  • 所以我假设你想在另一个 UIViewController 中显示单元格的图像?

标签: ios iphone swift uitableview


【解决方案1】:

您必须在情节提要中添加另一个视图控制器,该控制器将在点击单元格后打开。

tableView(_:didSelectRowAtIndexPath:) 中,您必须记住点击了哪个单元格,而在prepareForSegue 中,您可以将数据传递给目标视图控制器。在目标视图控制器中,只需根据传递的数据加载图像。

【讨论】:

  • 你能告诉我要传入什么数据
  • 取决于模型的结构 - 它可以是数组的索引、图像的 URL 或资产中的图像名称。
  • 它是数组的索引
【解决方案2】:

您可以使用 prepareForSegue 将数据从您的单元格传递到下一个 ViewController(图像之一)。

我会做类似的事情。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    self.indexTapped = indexPath.row
    self.performSegueWithIdentifier("goToImageViewController", sender: self)
}

....

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "goToImageViewController") {
        var vc = segue.destinationViewController as! ImageViewController
        vc.image = imageDatasource[indexTapped] as! UIImage
    }
}

一旦您调用performSegueWithIdentifier(identifier: String?, sender: AnyObject?),转换将在执行prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 代码后自动处理。

【讨论】:

  • 我试过你说的,但没有用我很确定我做错了什么
  • 你能简单一点吗
  • 所以想法是将信息从您正在点击的单元格传递到下一个 ViewController,这样您就可以显示图像,对吧?如果是这样,您只需将数组的索引保留在self.indexTapped 中,然后在prepareForSegue(...) 中将所需图像从您的数组设置为下一个 ViewController(假设您的ImageViewController),问我是否有任何更多疑问。
  • 我在 vc.image 收到一个错误,它说它不存在
  • 那是因为您可能没有在 ImageViewController 上创建 UIImage 属性。只需转到ImageViewController 并粘贴此行var image: UIImage! = nil,希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多