单击 TableViewCell 以打开当前用户的配置文件视图

Posted

技术标签:

【中文标题】单击 TableViewCell 以打开当前用户的配置文件视图【英文标题】:click on TableViewCell to open profile view of current user 【发布时间】:2017-03-31 04:44:11 【问题描述】:

我正在使用 firebase 数据库,并在 index path.row 有一个表格视图,显示用户的姓名、年龄、位置和图像。当单击单元格以显示包含更多信息和用户照片的用户个人资料时,我将如何显示另一个视图。这是我的 tableView 的代码。

 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return userList.count



override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 

    let cell = tableView.dequeueReusableCell(withIdentifier: "prefCell", for: indexPath) as! SFPTableViewCell

      let user = userList[indexPath.row]

    cell.name.text = userList[indexPath.row].name
    cell.location.text = userList[indexPath.row].location


    if let imageURL = user.image 

        cell.imageOne.loadImageUsingCacheWithUrlString(urlString: imageURL)
           
          return cell


    

【问题讨论】:

添加表格视图委托“didSelectRowAtIndexPath” 【参考方案1】:

使用代码使用 didSelectRowAtIndexPath。

使用情节提要:

第 1 步:选择表格视图单元格。

第 2 步:Control + 单击鼠标并在目标视图中拖动。

第 3 步:给出任何一个 segue。

第 4 步:完成。

【讨论】:

【参考方案2】:

在下面添加这个代码

override  func tableView(_ tableView: UITableView, didSelectRowAtindexPath: IndexPath)

   let detailVC = storyboard.instantiateViewControllerWithIdentifier("MyDetailVC") as MyDetailVC // get the obect of other VC
   detailVC.myImage = <your_image> // assign your image which you wanted to send to other VC.
   self.navigationController?.pushViewController(detailVC,animated: true // Push to other VC

MyDetailVC.swift

var myImage : UIImage? // Create variable of image type in required VC where you wanted to send data

现在在MyDetailVC.swift 中使用您的图片。

您可以提出任何进一步的问题。

【讨论】:

我可以通过电子邮件向您发送我对此的疑问【参考方案3】:

刚刚使用UITableViewDelegate 方法"didSelectRowAtIndexPath" 并将图像及其indexPath发送到其他视图控制器

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
        let sb = UIStoryboard(name: "Main", bundle: nil)
        let detailVC = sb.instantiateViewController(withIdentifier: "ImageVC") as! DetailViewController
        detailVC.strImage  = self.arrImage[indexPath.row]
        self.navigationController?.pushViewController(detailVC, animated: true)
    

DetailViewController 中取一个变量

var strImage : String = ""

并将这个变量赋值给 UIImagView

 imgView.image = UIImage(named: strImage) 

【讨论】:

您是从 WebService 获取图像吗?

以上是关于单击 TableViewCell 以打开当前用户的配置文件视图的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中单击以编程方式切换到 TableViewCell 上的导航视图

当单元格处于焦点时,iOS 在 TableViewCell 上放置一个视图

如何在不使用标签的情况下更改 tableviewCell 内的图像按钮

以编程方式进入编辑模式 TextField

无法单击 iOS 14 中 TableViewCell 内的按钮 [重复]

TableViewCell 上的 UIImageView 缺少单击单元格的约束