gpt4 book ai didi

ios - TableView array segue 不会传递数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:55:13 25 4
gpt4 key购买 nike

我无法将数据从我的 TableView 中的选定行传递到另一个 ViewController。

class SectionsTableViewController: UITableViewController {


var sections: [Sections] = SectionsData().getSectionsFromData()

override func viewDidLoad() {
super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return sections.count
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return sections[section].items.count
}


override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return sections[section].headings
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "sectionCell", for: indexPath)

// Configure the cell...
cell.textLabel?.text = sections[indexPath.section].items[indexPath.row]

return cell
}



override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if (segue.identifier == "sectionCell")
{
let upcoming: Sjekkliste = segue.destination as! Sjekkliste

let indexPath = self.tableView.indexPathForSelectedRow!

let titleString = Sections(title: "", objects: [""]) as? String

upcoming.titleString = titleString

self.tableView.deselectRow(at: indexPath, animated: true)
}

这就是我的问题所在:let titleString = Sections(title: "", objects: [""]) as?字符串

如果标题和对象分开传递会更好。

这是我的数据设置:

class SectionsData {
var myArray: [AnyObject] = []

func getSectionsFromData() -> [Sections] {

var sectionsArray = [Sections]()

let Generell = Sections(title: "Animals", objects:
["Cat", "Dog", "Lion", "Tiger"])
sectionsArray.append(Generell)
return sectionsArray

最佳答案

这一行建议您将 String 子类化为 Sections。你为什么要子类化字符串?如果 Sections 不是 string 的子类,则此行将失败。

let titleString = Sections(title: "", objects: [""]) as? String

我假设你想要类似这样的东西:

let selectedSection:Sections = Sections(title: "", objects: [""])
upcoming.titleString = selectedSection.title

上面建议 Sections 对象上的“title”属性是您要设置为下一个 View Controller 的“titleString”属性的内容。

与原始问题无关,您应该将“Generell”小写。最佳实践建议只有类名应该以大写字母开头。我还建议实现 didSelectRow 方法来选择数据。结果应与此类似:

var selectedSection:Sections? //goes at top

public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
self.selectedSection = self.sections[indexPath.section]
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?){
if (segue.identifier == "sectionCell"){
let upcoming: Sjekkliste = segue.destination as! Sjekkliste
if let section = self.selectedSection{
upcoming.titleString = section.title
}
}
}

关于ios - TableView array segue 不会传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41190455/

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