Oli*_*cer 2 tableview viewcontroller segue swift
我正在尝试将listView选择的选定索引号从一个ViewController传递到另一个ViewController但遇到问题时,tableView didSelectRowAtIndexPath委托比prepareForSegue函数稍晚运行.
基本上,在didSelectRowAtIndexPath中,我选择变量,然后在prepareForSegue中获取.问题是prepareForSegue似乎运行第二个选择单元格,并且在调用didSelectRowAtIndexPath函数之前,所以我的变量没有被传递.
我的主要代码是:
tableView didSelectRowAtIndexPath委托,设置'selectedResult'...
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    selectedResult = indexPath.item
    txtNameSearch.resignFirstResponder()    //get rid of keyboard when table touched.
    println("saved result")
    //tableView.deselectRowAtIndexPath(indexPath, animated: false)
    //var tappedItem: ToDoItem = self.toDoItems.objectAtIndex(indexPath.row) as ToDoItem
    //tappedItem.completed = !tappedItem.completed
    //tableView.reloadData()
}
prepareForSegue函数将变量作为'toPass'发送到另一个ViewController('detailViewController'):
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!){
    if (segue.identifier == "detailSeque") {
        println("preparing")
        var svc = segue!.destinationViewController as detailViewController
        svc.toPass = selectedResult
        //println(tableView.indexPathsForSelectedRows().
        //svc.toPass = tableView.indexPathForSelectedRow()
    }
}
提前致谢
vac*_*ama 11
如果您在具有出口到您的tableView ViewController,你可以调用indexPathForSelectedRow的prepareForSegue.
如果你ViewController是你的子类UITableViewController,你可以这样做:
    let row = self.tableView.indexPathForSelectedRow().row
    println("row \(row) was selected")
如果你ViewController是不是类的子类UITableViewController,建立一个IBOutlet到UITableView您的视图控制器:
@IBOutlet var tableView: UITableView!
然后在Interface Builder中连接并从prepareForSegue上面的show中调用它.
| 归档时间: | 
 | 
| 查看次数: | 12538 次 | 
| 最近记录: |