2017-07-03 69 views
-3

問題是label.text值每次都在viewload中接受。我不知道是什麼問題。Label.text未更新

我在迅速3的Xcode 8這個代碼,我有一個標籤如下所示

標籤後面將要設置

enter image description here

然後我要分配的標籤的值,當鑑於負載作爲初始值

這一次查看載荷和它工作正常:)

enter image description here

後來我想改變的標籤值,我想,當用戶移動到另一個查看回來它被設置當前日期,所以我做了功能開放,你說..

這裏是我如何調用該函數從secondViewController

函數調用

enter image description here

最後我想將它設置爲這些值

enter image description here

last desired values

+0

[3]:「https://i.stack.imgur.com/BFy5k.png」 [4]:<----> https://i.stack.imgur.com/Nfr1C.png------- – Abdullah

+6

複製你的代碼並粘貼它而不是圖像。 –

+0

你在哪裏調用'calcPray'? – Leo

回答

2

這樣做是你的firstviewcontroller,定義一個屬性說:

var x : String? 
在secondview控制器

現在做到這一點:

​​

現在firstviewcontroller集viewDidLoad()方法中的標籤:

dateItem?.text = x 

注:沒有必要prepare函數創建FirstViewController的另一個實例,因爲UIViewController中override func prepare(for segue: UIStoryboardSegue, sender: Any?)的內置函數負責從一個視圖控制器等會,你只需要比較標識符

+0

我做了你的解決方案..它看起來非常正確和可以理解,但boooom另一個錯誤:) Thread1:SIGABRT,在AppDelegate中顯示的錯誤..我從來沒有使用AppDelegate – Abdullah

+0

@Abdullah設置異常斷點,以獲得*致命錯誤的行:意外地發現零*崩潰。 – vadian

+0

@vadian無法做到這一點不是專家:(幫助 – Abdullah

1

問題在於準備繼續。當你有使用segue.destination到firstViewController你參考,你不需要做 s = FirstViewController(),這個你正在創建一個新的實例,而不是使用將實際獲得SEGUE期間初始化的一個,使用firstController.calcPray()

+0

即使我沒有傳遞任何值到firstviewcontroller ?? – Abdullah

+0

對不起,我不知道你的意思是?你能解釋一下你想要問什麼嗎?說:「不傳遞任何值firstviewcontroller」? –

+0

對不起,我的意思是我只是在用戶離開第二個控制器時調用calcPray(),創建新的實例不會引起任何問題,因爲label.text將被設置爲在firstviewcontroller中生成的值。我希望現在很清楚 – Abdullah