如何调用函数在Swift中从UITableViewCell类更改viewController?

问题描述:

我需要调用一个函数从UITableViewCell类,以改变的viewController,但我得到: “致命错误:意外发现零而展开的可选值”如何调用函数在Swift中从UITableViewCell类更改viewController?

class Custom: UITableViewCell{ 
     var myClass: MyClass! 
     myClass = MyClass() 
     myClass.call() 
} 

class MyClass: UIViewController { 
    func call(){ 
     let nextView = self.storyboard!.instantiateViewControllerWithIdentifier("view") as MyViewController 

    self.navigationController!.pushViewController(nextView, animated: true) 
    } 
} 

如何正确地做到这一点?

谢谢!

+0

设置一个断点并逐步通过,但我怀疑视图控制器实例化失败 - 可能是因为“视图”不是标识符。最好是从视图控制器创建一个segue到你的新视图控制器,然后调用'self.performSegueWithIdentifier()' – Paulw11 2014-10-22 11:33:39

+0

我得到错误“没有带标识符的segue”segueUnl“”但我有这个标识符..什么原因是什么? – user3745888 2014-10-22 11:58:18

+0

不要将视图控制器标识符与segue标识符混淆。 – Paulw11 2014-10-22 11:59:11

你不能调用这样的函数,你必须定义一些方法并调用该函数!例如

class Custom: UITableViewCell{ 
    var myClass: MyClass=MyClass() 
func callMethod(){ 

myClass.call() 
} 
} 
+0

这和我正在做的一样。我得到相同的错误... – user3745888 2014-10-22 11:52:46

+0

这段代码对我成功运行! – 2014-10-27 04:49:04

+0

您直接调用myClass.call()方法,因为您必须在同一个类的函数下调用此方法!所以我创建了方法callMethod,然后从myClass调用函数! – 2014-10-27 04:52:14