ios - swift tableview句子错误
问题描述
我正在尝试制作一个表格视图,用户可以在其中单击单元格,以便单元格打开一个新的 ViewController,它将导航栏标题设置为单击的单元格的标签。
它对我不起作用,因为当我单击一个单元格时,它会打开一个视图,该视图具有先前单击的单元格的值(不是当前单元格的值),然后再次打开一个新视图,其中标题是当前单元格的值。
我将视图控制器上传到 GitHub 存储库:https ://github.com/SiposPtr/stackoverflow
var selectedValue: String?
var numberOfFileToLoad: Int = 1
let cellak = [
"Első",
"Második",
"Harmadik",
"Negyedik",
"Ötödik",
"Hatodik",
"Hetedik",
"Nyolcadik",
"Kilencedik"
]
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return cellak.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
cell.textLabel?.text = cellak[indexPath.row]
// Configure the cell...
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
selectedValue = cellak[indexPath.row]
numberOfFileToLoad = indexPath.row + 1
performSegue(withIdentifier: "gotoSentences", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "gotoSentences"{
let nextViewController = segue.destination as! ButtonEditViewController
nextViewController.title = selectedValue
nextViewController.numberOfFileToLoad = numberOfFileToLoad
}
}
解决方案
似乎segue
执行了两次。如果您有segue
从表格视图单元到下一个视图控制器的连接,则segue
在选择单元后立即执行,然后didSelectRowAt
调用方法。
您可以在方法中获取选定的行prepare for segue
并将选定的数据传递给下一个视图控制器。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "gotoSentences"{
if let nextViewController = segue.destination as? ButtonEditViewController,
let indexPath = tableView.indexPathForSelectedRow {
nextViewController.title = cellak[indexPath.row]
nextViewController.numberOfFileToLoad = indexPath.row + 1
}
}
}
推荐阅读
- python - 将值设置为 pandas DataFrame 单元格
- java - 即使在为 thread.sleep 抛出异常之后也会出错
- python - 在 Dataframe 中的特定位置添加一列
- node.js - 如何使用nodejs将pdf数组缓冲区转换为pdf文件
- c# - 将对象作为 xml 发布到 Solr
- css - 响应式 CSS 文本
- java - 与相同的逻辑条件查询相比,HQL 查询返回不同的结果
- php - 未配置数据库连接 [用户]
- android - 发送时权限被拒绝
从 /System/app 中的应用程序 - javascript - 如何在根反应导航器之外获取反应导航器状态?