當您在屏幕上按下試圖獲取不同視圖中的函數時,我只需要執行 viewControllerFuncIsIn()。NameOfFunc () ,但因爲具有函數im試圖調用的視圖控制器類是SCNView。它給了我ns編碼器這個錯誤,因爲在當前在Skscene im試圖調用的函數是在一個稱爲Extra1的類下面的viewdidload(不在其中)。如何從不同類別的不同視圖控制器調用函數
更新下面的評論:
Extra1(coder:NSCoder())!.see()
當您在屏幕上按下試圖獲取不同視圖中的函數時,我只需要執行 viewControllerFuncIsIn()。NameOfFunc () ,但因爲具有函數im試圖調用的視圖控制器類是SCNView。它給了我ns編碼器這個錯誤,因爲在當前在Skscene im試圖調用的函數是在一個稱爲Extra1的類下面的viewdidload(不在其中)。如何從不同類別的不同視圖控制器調用函數
更新下面的評論:
Extra1(coder:NSCoder())!.see()
你小例子:
使用委託時連接一對一。
代表:
創建協議:
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)
好酷,但是這是一個錯誤我無法修復弱var委託:TextViewControllerDelegate?它表示弱可能只適用於類和類綁定的proticol類型,而不是'TestViewControllerDeleggate',它只是在說知道我在哪裏放置那行代碼@Oleg Gordiichuk – Hunter
我喜歡回答我的問題
func mySelector(elem: AnyObject) {
Extra1().see()
}
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.mySelector), name: "see", object: nil)
NSNotificationCenter.defaultCenter().postNotificationName("see", object: self)
您是否閱讀過或發現了錯誤?你正嘗試使用init方法'init(withCoder coder :))'而不通過編碼器 –
是的我得到一個錯誤不適當的更新我的代碼@Simon McLoughlin – Hunter
嘗試使用代表或通知 –