ios - UITableViewNavigation 出现问题,在 segue 上传递数据
问题描述
我无法将数据UITableView
从UIViewController
. 尝试了几种方法,但都失败了。收到此错误
线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVO)
当我运行项目时。
请参阅下面我尝试过的代码。
//Code on the UITableViewController
class ShonaHymnsUITableViewController: UITableViewController {
var hymns : [Hymns] = Hymns.fetchHymns()
//MARK: - UItableViewDataSource
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return hymns.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "hymnCell", for: indexPath) as! HymnsTableViewCell
let hymn = hymns[indexPath.row]
cell.hymn = hymn
return cell
}
// MARK: - NAVIGATION
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
self.performSegue(withIdentifier: "ShowHymnDetail", sender: indexPath)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// TODO: Prepare for Hymn Detal segue
if segue.identifier == "ShowShonaHymnListing" {
let shonaHymnListingVC = segue.destination as! ShonaHymnsUITableViewController
shonaHymnListingVC.hymns = hymns
} else if segue.identifier == "ShowHymnDetail" {
let indexPath = tableView.indexPathForSelectedRow
let selectedHymn = hymns[(indexPath?.row)!]
let hymnDetailVC = segue.destination as! ShonaHymnsViewController
hymnDetailVC.hymn = selectedHymn
}
}
}
//Code on the ViewController that I want to receive the data
class ShonaHymnsViewController: UIViewController {
@IBOutlet weak var hymnNumber: UILabel!
@IBOutlet weak var hymnTitle: UILabel!
@IBOutlet weak var hymnDetail: UITextView!
var hymn: Hymns!
override func viewDidLoad() {
super.viewDidLoad()
hymnNumber.text = hymn.hymnNumber
hymnTitle.text = hymn.hymnTitle
hymnDetail.text = hymn.hymnDetail
}
}
这是一个赞美诗书应用程序,我希望在接收者视图控制器上显示完整的赞美诗细节。请参阅图像以了解应用程序的设置
解决方案
颠倒顺序
self.performSegue(withIdentifier: "ShowHymnDetail", sender: indexPath)
tableView.deselectRow(at: indexPath, animated: true)
为了这
hymns[(indexPath?.row)!]
有一个有效的值
推荐阅读
- ios - 带有 Lottie 动画的动态按钮
- isabelle - Isabelle中函数定义案例分析
- html - Thymleaf 页脚不固定
- node.js - 通过邮递员 api 节点 js 发布请求时出错
- java - LiquiBase 问题,类路径资源 [db/changelog/db.changelog-master.yaml] 无法解析为 URL,因为它不存在
- reactjs - React Native 无法分配给对象的只读属性“exports”
- python - Tensorflow 层将输入映射到回归图
- python - 如何在 Python 中使用 Google Cloud Firestore 检索子集合?
- python - 循环的有效方法
- java - 如何解决 PostgreSQL 的连接问题