假设我有一个表格视图,我该如何创建代码,让一个单元格转到一个视图控制器,然后让另一个单元格转到另一个视图控制器。特别是prepare for segue和perform with segue if语句。
发布于 2015-01-26 23:07:02
您的父视图控制器(表视图所在的位置)应该具有您的UITableViewDelegate方法。
您需要创建自己的实现:
optional func tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
在那里(当一个单元格被按下时被调用),你会想要调用
self.performSegueWithIdentifier("Load View", sender: self)
传递给didSelectRowAtIndexPath的参数之一是索引路径行,因此您可以知道用户按下了哪一行。您可以在performSegueWithIdentifier方法的"sender“参数中传递该单元格(或信息,或该单元格从中绘制其内容的对象)。
在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
}
}到目前为止说得通吗?
https://stackoverflow.com/questions/28152641
复制相似问题