gpt4 book ai didi

ios - 我想知道如何让一个单元格快速转到 Xcode 9 中的另一个 View Controller

转载 作者:行者123 更新时间:2023-11-30 12:07:36 26 4
gpt4 key购买 nike

我一直在尝试弄清楚如何配置单元格以转到另一个 View ,在这种情况下,我在登录后列出一组服务,当用户点击他们喜欢的服务时,它会带他们到 map 。但我不知道如何设置单元格,以便在点击时将它们带到 map 上。我尝试创建一个segue,但点击单元格时没有任何反应。我是编程新手,想知道是否有人可以解释这一点。

我观看了很多 YouTube 视频,这些视频让我了解了如何设置单元(基本内容)。

非常感谢您的建议,谢谢!

希望这篇文章可以帮助任何踏入编程之旅的人!

谢谢您,编码愉快!

这是我当前拥有的代码:

import UIKit
struct cellData {
let cell : Int!
let text : String!
let image : UIImage! }

class ListServicesTVC: UITableViewController {

var arrayOfCellData = [cellData]()


override func viewDidLoad() {
arrayOfCellData = [cellData(cell : 1, text : "Barber Services", image : #imageLiteral(resourceName: "barberservice") ),
cellData(cell : 2, text : "Salon Services", image : #imageLiteral(resourceName: "salonservice"))]
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return arrayOfCellData.count

}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if arrayOfCellData[indexPath.row].cell == 1 {

let cell = Bundle.main.loadNibNamed("BarberServiceCell", owner: self, options: nil)?.first as! BarberServiceCell

cell.barberImageView.image = arrayOfCellData[indexPath.row].image
cell.barberServicesLabel.text = arrayOfCellData[indexPath.row].text

return cell
}
else if arrayOfCellData[indexPath.row].cell == 2 {

let cell = Bundle.main.loadNibNamed("SalonServicesCell", owner: self, options: nil)?.first as! SalonServicesCell

cell.salonImageView.image = arrayOfCellData[indexPath.row].image
cell.salonServicesLabel.text = arrayOfCellData[indexPath.row].text

return cell
}

else {
let cell = Bundle.main.loadNibNamed("BarberServiceCell", owner: self, options: nil)?.first as! BarberServiceCell

cell.barberImageView.image = arrayOfCellData[indexPath.row].image
cell.barberServicesLabel.text = arrayOfCellData[indexPath.row].text

return cell
}
}

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

if arrayOfCellData[indexPath.row].cell == 1 {
return 120
}
else if arrayOfCellData[indexPath.row].cell == 2 {
return 120
}
else {
return 120
}

}
}

最佳答案

只需按照以下步骤操作即可:

  • 在 ViewController 类中创建一个 tableView Outlet。
  • 创建一个TableViewCell类并注册到tableView Outlet。
  • 然后,创建一个 DetailViewController 类(即,当您单击特定单元格时,它应该显示该特定单元格的详细信息)

在主“ViewController”中执行以下代码

ViewController 类:UIViewController、UITableViewDelegate、UITableViewDataSource {'

@IBOutlet var tableView: UITableView!


var tableData: [String] = ["Apple", "Samsung", "LG"]

// 1
override func viewDidLoad() {
super.viewDidLoad()


// Register customCell with tableView Outlet
let nib = UINib(nibName: "CustomTableViewCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "cell")

}

// 2
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tableData.count
}

// 3
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell: CustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! CustomTableViewCell
// injecting data to cell
cell.lblCompanyName.text = tableData[indexPath.row]
cell.imgCompanyName.image = UIImage(named: tableData[indexPath.row])

return cell

}

// 4
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {


let detailObj=DetailViewController(nibName: "DetailViewController", bundle: nil)
self.navigationController?.pushViewController(detailObj, animated: true)
detailObj.nameVar=tableData[indexPath.row]
detailObj.imgStr=tableData[indexPath.row]

}
  • 在“CustomTableViewCell”类中
  • 类 CustomTableViewCell:UITableViewCell {

    @IBOutlet var imgCompanyName: UIImageView!
    @IBOutlet var lblCompanyName: UILabel!


    override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    }}
  • 在“DetailViewController”中
  • 类 DetailViewController: UIViewController {

        @IBOutlet var name: UILabel!
    @IBOutlet var image: UIImageView!
    var nameVar:String?
    var imgStr:String?
    override func viewDidLoad() {

    name.text=nameVar
    image.image=UIImage(named: imgStr!)

    super.viewDidLoad()

    // Do any additional setup after loading the view.
    }}

    代码结束

    我想我已经说得很清楚了,如果您有任何疑问,请在下面评论。

    关于ios - 我想知道如何让一个单元格快速转到 Xcode 9 中的另一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46496043/

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