假设我有一个表视图,我将如何创建代码以使一个单元格转到一个视图控制器,然后将另一个单元格转换为第二个视图控制器。特别是准备segue并使用segue if语句执行。
答案 0 :(得分:0)
您的父视图控制器(表视图所在的位置)应该具有您的UITableViewDelegate方法。
您需要创建自己的实现:
optional func tableView(_ tableView: UITableView,
didSelectRowAtIndexPath indexPath: NSIndexPath)
在那里(当按下一个单元格时会被调用),你想要打电话
self.performSegueWithIdentifier("Load View", sender: self)
传递给didSelectRowAtIndexPath的参数之一是索引路径行,因此您知道用户按下了哪一行。并且您可以在" sender
"中传递该单元格(或信息,或单元格正在从中绘制内容的对象)。 performSegueWithIdentifier方法的参数。
您可以通过prepareForSegue:sender:
方法从父级直接访问子视图控制器。所以你可以这样做:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "Load View") {
// pass data to next view
let cellData = sender as YourDataObject
let childViewController = segue.destinationViewController as YourChildViewController
// and now you can directly set whatever custom fields / bits
// you need to set in your destination view controller
}
}
到目前为止有道理吗?