0
我有一個有三個控制器的Watch應用程序。主控制器,另一個具有表格視圖,最後一個是設置控制器。在設置控制器中,我有一個開關。當它的值被改變時,該值被存儲到一個布爾變量。我想將這個變量的值發送給第一個控制器,這樣當我滑動回第一個控制器時,該值將被髮送到那裏。可能嗎?我怎樣才能做到這一點?WatchKit:將數據從第三個控制器傳遞到初始控制器
我有一個有三個控制器的Watch應用程序。主控制器,另一個具有表格視圖,最後一個是設置控制器。在設置控制器中,我有一個開關。當它的值被改變時,該值被存儲到一個布爾變量。我想將這個變量的值發送給第一個控制器,這樣當我滑動回第一個控制器時,該值將被髮送到那裏。可能嗎?我怎樣才能做到這一點?WatchKit:將數據從第三個控制器傳遞到初始控制器
是的,這是可能的。你必須使用contextForSegueWithIdentifier
。您必須從此方法返回數據,並在您的目標類中訪問該數據,在您的情況下爲「第一個控制器」。
你可以這樣實現它:
// In settings controller
override func contextForSegueWithIdentifier(segueIdentifier: String) -> AnyObject? {
return self.currentValue
// In first controller
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
if let value: String = context as? String {
print(value)
}
謝謝。我剛剛研究了這個問題,並且我瞭解到某人也有一個帶有segueIdentifier ==「控制器名稱」的if語句。我需要把它放在那裏嗎? – DZetko
我認爲這將工作正常,沒有if語句。 –
那麼它是如何認識到它應該將這些信息傳遞給第一個控制器,而不是第二個控制器,而第二個控制器(故事板文件中的第一個和第三個控制器之間)呢? – DZetko