gpt4 book ai didi

ios - 通过动态原型(prototype)中的 segue 传递 myCell.textLabel?.text 值

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

我正在尝试从一个 UITableView 转到另一个 UITableView。我想 segue 并将所选单元格的 myCell.textLabel?.text 值传递给第二个 UITableView。

我的第一个 UITableView (MenuTypeTableViewController) 的代码和我的第二个 UITableView (TypeItemsTableViewController) 的代码也在下面。

我完全知道这涉及到我目前尚未创建的 prepareForSegue 函数,纯粹是因为我不确定我在哪里覆盖它以及如何将 textLabel 值传递给它。

希望我的问题有意义,我会更新建议和修改。

class MenuTypeTableViewController: UITableViewController, MenuTypeServerProtocol {

//Properties
var cellItems: NSArray = NSArray()
var menuType: MenuTypeModel = MenuTypeModel()

override func viewDidLoad() {
super.viewDidLoad()
let menuTypeServer = MenuTypeServer()
menuTypeServer.delegate = self
menuTypeServer.downloadItems()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}

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

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier: String = "cellType"
let myCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)!
let item: MenuTypeModel = cellItems[indexPath.row] as! MenuTypeModel
myCell.textLabel?.text = item.type
return myCell
}


func itemsDownloaded(items: NSArray) {
cellItems = items
tableView.reloadData()
}
}



class TypeItemsTableViewController: UITableViewController, TypeItemsServerProtocol {

//Properties
var cellItems: NSArray = NSArray()
var typeItemList: TypeItemsModel = TypeItemsModel()

override func viewDidLoad() {
super.viewDidLoad()
let typeItemsServer = TypeItemsServer()
typeItemsServer.delegate = self
typeItemsServer.downloadItems()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}

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

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier: String = "cellTypeItem"
let myCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)!
let item: TypeItemsModel = cellItems[indexPath.row] as! TypeItemsModel
myCell.textLabel?.text = item.name
return myCell
}

func itemsDownloaded(items: NSArray) {
cellItems = items
tableView.reloadData()
}
}

最佳答案

您好,试试下面的代码集,我在您的代码中添加了一些额外的更改来使用它,我希望它能解决您的问题。
我只添加了您需要的额外代码

class TypeItemsTableViewController: UITableViewController, TypeItemsServerProtocol {

// Add this variable in this class and use it whereever you needed it in this class
var selectedItem: String?


override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Get the selected cell
let selectedCell = tableView.cellForRow(at: indexPath)

// Now maintain the text which you want in this class variable
selectedItem = selectedCell?.textLabel?.text

// Now perform the segue operation
performSegue(withIdentifier: "TypeItemsTableViewController", sender: self)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "TypeItemsTableViewController" {
let destinationVC = segue.destination as? TypeItemsTableViewController
destinationVC?.selectedItem = self.selectedItem // Pass the selected item here which we have saved on didSelectRotAt indexPath delegate
}
}

二等舱:

class TypeItemsTableViewController: UITableViewController, TypeItemsServerProtocol {


// Add this variable in this class and use it whereever you needed it in this class
var selectedItem: String?

关于ios - 通过动态原型(prototype)中的 segue 传递 myCell.textLabel?.text 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46496500/

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