当你按下屏幕我试图获得一个功能,在另一个视图控制器被称为usaully我会做的 viewControllerFuncIsIn()。NameOfFunc() 但是因为具有我试图调用的函数的视图控制器类是SCNView。它使用ns编码器给我这个错误,因为目前在Skscene中 我试图调用的函数位于viewdidload(不在其中)正下方的一个名为Extra1的类中。
以下评论更新:
Extra1(coder:NSCoder())!.see()
答案 0 :(得分:2)
小例子:
当连接是一对一时使用委托。
代表:
创建协议:
protocol TestViewControllerDelegate {
func finishTask(sender: TestViewController)
}
为委派创建参考。它应该很弱,这很重要。
weak var delegate:TestViewControllerDelegate?
退出了你的课堂。
extension MainViewController: TestViewControllerDelegate {
func finishTask(sender: TestViewController) {
}
}
致电代表:
delegate?. finishTask(self)
当连接是一对多时使用通知。
通知:
添加观察员以获取通知。
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ClassName.test), name:"NotificationIdentifier", object: nil)
发布通知。
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)
答案 1 :(得分:0)
我喜欢我的问题的答案
func mySelector(elem: AnyObject) {
Extra1().see()
}
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.mySelector), name: "see", object: nil)
NSNotificationCenter.defaultCenter().postNotificationName("see", object: self)