选定的行将“nil”传递给详细视图

时间:2016-04-20 19:31:55

标签: swift uitableview nsmutablearray

我有一个// If the PHP installation does not support short tags we'll // do a little string replacement, changing the short tags // to standard PHP echo statements. if ( ! is_php('5.4') && ! ini_get('short_open_tag') && config_item('rewrite_short_tags') === TRUE) { echo eval('?>'.preg_replace('/;*\s*\?>/', '; ?>', str_replace('<?=', '<?php echo ', file_get_contents($_ci_path)))); } else { include($_ci_path); // include() vs include_once() allows for multiple views with the same name } 的屏幕,显示存储在对象Table View中的所有提醒。

现在我正在点击一行提醒列表,通向一个屏幕以显示其详细信息。

我想要做的是:选择一行,获取行索引,然后在这样的行索引中选择数组中相应的提醒对象,以传递给下一个视图。

我该怎么办?我是Swift的新手。这是我的坦克练习任务。

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。当您点击触发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]
                }                
            }
        }
    }
}