2017-03-22 31 views
1

首先讓我解釋一下我想要歸檔的場景究竟是什麼。解僱viewController後更新網點

我的rootviewcontroller - > FirstViewController - > DetailViewController - > Detail2ViewController,然後返回FirstViewController,並通過FirstViewController中的函數更新標籤。

(假設 - >表示按下按鈕)

現在我用這個從最後的viewController調用該函數:

var go = FirstViewController() 

self.go.get() //get is the function that updates the textfield text. 

self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil) 

現在我打印字符串我想成爲我的標籤的新文本和它的作品,但是當我使用這行:

self.label.text = newone // newone is the new string 

我有這個日誌崩潰:

fatal error: unexpectedly found nil while unwrapping an Optional value

當然同樣的功能正在工作時,我第一個到達FirstViewController,我還試圖用一個字符串插入到這樣的標籤文字:

self.label.text = "hello" 

在此先感謝。

編輯:

我忘了把導航控制器。

NavContr - > RootViewController的 - > FirstViewController - > DetailViewController - > NavContr - > Detail2ViewController

+0

正如下面的回答,'var go = FirstViewController()'是錯誤的,你必須使用類似'let go = self.presentingViewController!.presentingViewController!如! FirstViewController'(也不推薦使用,代之以使用) – Tj3n

+0

@ Tj3n感謝您的評論我試圖與委託做到這一點,但我不能編輯我的問題與導航控制器可以給我一個新的情況的例子嗎? –

回答

1

var go = FirstViewController()。 每次這將創建一個新的FirstViewController()實例,並且不會使用您已經初始化的viewController實例。據報道標籤因此你得到fatal error。 嘗試從堆棧中獲取已經初始化的對象(如果您正在使用它並且有一個)。

+0

謝謝你的答案,你可以給我一個例子嗎? –

相關問題