所选行将“nil”传递给详细视图
Selected row passes `nil` to detail view
我有一个带有 Table View
的屏幕,显示存储在对象 currentReminders: NSMutableArray
中的所有提醒。
现在我正在点击一行提醒列表,然后在屏幕上显示其详细信息。
我要做的是:选择一行,获取行索引,然后在该行索引处选择数组中对应的提醒对象传递给下一个视图。
我该怎么做?我是 Swift 的新手。这是我的tute练习任务。
你走在正确的轨道上。当您点击 table 中的单元格触发 segue 时,prepareForSegue 的 sender 参数就是该单元格。您可以使用 tableView 出口和单元格对象获取 indexPath 并使用它从数组中检索数据。
class ReminderListController: UITableViewController, addReminderProtocol {
// assuming that the following gets loaded somehow.
var currentReminders = [Reminders]()
var reminderToPass: Reminders?
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showReminderSegue" {
// convert sender to a cell
if let cell = sender as? UITableViewCell {
// get the indexPath of that cell in the tableView
let indexPath = tableView.indexPathForCell(cell)
if let destinationVC = segue.destinationViewController as? ShowReminderController {
destinationVC.aReminder = currentReminders[indexPath.row]
}
}
}
}
}
我有一个带有 Table View
的屏幕,显示存储在对象 currentReminders: NSMutableArray
中的所有提醒。
现在我正在点击一行提醒列表,然后在屏幕上显示其详细信息。
我要做的是:选择一行,获取行索引,然后在该行索引处选择数组中对应的提醒对象传递给下一个视图。
我该怎么做?我是 Swift 的新手。这是我的tute练习任务。
你走在正确的轨道上。当您点击 table 中的单元格触发 segue 时,prepareForSegue 的 sender 参数就是该单元格。您可以使用 tableView 出口和单元格对象获取 indexPath 并使用它从数组中检索数据。
class ReminderListController: UITableViewController, addReminderProtocol {
// assuming that the following gets loaded somehow.
var currentReminders = [Reminders]()
var reminderToPass: Reminders?
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showReminderSegue" {
// convert sender to a cell
if let cell = sender as? UITableViewCell {
// get the indexPath of that cell in the tableView
let indexPath = tableView.indexPathForCell(cell)
if let destinationVC = segue.destinationViewController as? ShowReminderController {
destinationVC.aReminder = currentReminders[indexPath.row]
}
}
}
}
}