2015-02-24 73 views
0

我是Swift中的新成员。我想知道如何在用户单击Table View单元格时调用另一个View Controller。 在此先感谢。如何调用(显示)在Swift中单击Table View单元格时的另一个View Controller

+1

显示我们你试过什么了? – 2015-02-24 12:38:39

+1

请按照本教程进行操作:http://www.codingexplorer.com/segue-uitableviewcell-taps-swift/ – 2015-02-24 12:47:43

+0

我按住“控制”按钮并将表格单元拖动到另一个视图控制器。然后,我选择“Selection Segue”下的“push”选项。但是当我点击单元格时出现错误。 – 2015-02-24 12:50:54

回答

2

写入以下代码:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
self.performSegueWithIdentifier("showItemDetail", sender: tableView)} 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
if segue.identifier == "showItemDetail" { 
    let indexPath:NSIndexPath = self.tableView.indexPathForSelectedRow()! 
    let detailVC:ItemDetailViewController = segue.destinationViewController as ItemDetailViewController 
    detailVC.item = items[indexPath.row] as Item 
} 

}

从故事板中添加的viewController和从tableview中小区的SEGUE添加的viewController具有标识符 “showItemDetail”; 将导航太detailViewController

+0

好的,但你能告诉我,“物品”是什么意思?我得到这样的错误:“使用未解析的标识符'项目'” – 2015-02-24 13:35:01

2

在第一个视图控制器

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) 
{ 
    if segue.identifier == "showItemDetail" 
    { 
    let indexPath:NSIndexPath = self.tableView.indexPathForSelectedRow()! 
    let destination = segue.destinationViewController as DetailViewController 
    destination.name = "llkin Elimov" 
} 

在第二个细节视图控制器

public DetailViewController 
{ 
    var name = "name" as String //After you created the segue in  main.storyboard, in name , you will get your parsed string automatically 

} 

希望我的代码是明确为你:)

+0

感谢所有人,但两个月前我已经解决了这个问题:) – 2015-04-27 09:58:46

+0

好听。 :) – 2015-04-27 10:30:36

相关问题