2016-02-05 77 views
0

在我的iOS應用程序中,我有ViewController Label和TextView。他們兩個默認都沒有文字。在ViewController的viewWillAppear方法中,我檢查 - 如果它們是空的 - 我在這些Label和TextView中放置一些來自服務器的字符串。它工作正常,我在屏幕上看到這些字符串。爲什麼TextView.text是空的

但是當我再次打開這個ViewController和viewWillAppear方法再次運行 - 它仍然認爲myTextView.text是空的,並試圖從服務器獲取數據。 myLabel.text的工作方式與我所期望的完全相同 - 它的文本值不是空的。

我檢查了TextView的出口名稱是正確的。

override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 
     if (myTextView.text.isEmpty) { 
      NSLog("myTextView is empty - need to refresh data") 
      updateStrings() } 
    } 

    func updateStrings() { 
     ..... get data from server .... 
      myTextView.text = string_from_server 
      myLabel.text = string_from_server 
      } 
+0

你可以發佈你已經實現的代碼嗎? –

+0

你怎麼加載這個控制器在內存..?它重新加載..?第二次在viewdidload中放置一個斷點,如果它再次被調用,那麼你的控制器再次被加載。 –

+0

我添加了我實現的代碼 – moonvader

回答

0

首先,您發佈的代碼看起來不像您使用的代碼 - 這不會編譯。您需要關閉NSLog上的引號,並且需要在TextView文本上解開可選。

下面是其中不按要求

override func viewWillAppear(animated: Bool) 
{ 
    super.viewWillAppear(animated) 

    if (myTextView.text!.isEmpty) 
    { 
     NSLog("myTextView is empty - need to refresh data") 
     myTextView.text = "Hello World" // or updateStrings() 
    } 
} 

工作,你重裝這個視圖控制器,或者是你每次都創建它的一個新的實例相同功能的版本?

+0

你說得對 - 這是我的代碼縮短版本。我使用MMDrawerController來顯示視圖。 – moonvader