2014-10-01 89 views
4

我有一个自定义单元格附加到TableViewCell类,并且我有一个按钮里面的自定义单元格,我想要乳清我按下按钮它继续到另一个视图控制器,但:斯威夫特 - 塞格从单元格内的按钮

performSegueWithIdentifier(identifier: String, sender: AnyObject?) 

功能无法识别,如何解决?

编辑:

Screenshot

回答

0

你需要一个自定义类的细胞。在该类中,创建一个@IBAction作为对按钮单击的响应。在那个动作中,执行你的继续。

+0

我已经做了所有已。 – Abdou023 2014-10-01 14:45:42

+0

请显示该操作的代码。 – zisoft 2014-10-01 14:47:06

+0

我更新了我的问题 – Abdou023 2014-10-01 14:55:36

0

如果您使用的界面生成器:

您firstViewController连接到secondViewController - 并创建一个Segue公司标识。

然后你就可以使用

performSegueWithIdentifier(identifier: String, sender: AnyObject?) 
+0

已经这样做了 – Abdou023 2014-10-01 14:57:46

+0

您的细胞(不是按钮)连接到secondViewController – derdida 2014-10-01 14:58:52

+0

的问题是不是与连接进行SEGUE,它与识别功能本身。编译器不接受它。 – Abdou023 2014-10-01 15:03:35

17

-performSegueWithIdentifier:方法UIViewController声明。所以你不能只在UITableViewCell子类中调用它。

你可以当你在-tableView:cellForRowAtIndexpath:方法产生细胞的动作添加到该按钮。然后,您可以在该操作方法中调用-performSegueWithIdentifier:方法。这里是假设例如我们在UITableViewController子类:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell 

    cell.button.addTarget(self, action: "someAction", forControlEvents: .TouchUpInside) 

    return cell 
} 

这里是操作方法:

func someAction() { 
    self.performSegueWithIdentifier("moveToView", sender: self) 
} 
+0

这解决了我花了几个小时的问题。谢谢。这是最佳做法吗?这很容易,而且很有效,所以这是件好事。考虑考虑准备segue将数据传递到moveToView – 2015-03-07 22:48:46

+0

请显示你如何定义你的segue ...因为它不适合我;( – Arti 2015-10-11 12:47:50