Ios 为什么TextView.text是空的

Ios 为什么TextView.text是空的,ios,xcode,swift,xcode7,Ios,Xcode,Swift,Xcode7,在我的iOS应用程序中,我有带有标签和文本视图的ViewController。默认情况下,它们都没有文本。在VIEWWILLEXPENCE的ViewController方法中,我检查-如果它们为空-我将来自服务器的一些字符串放入这些标签和文本视图中。它工作正常,我在屏幕上看到了这个字符串 但当我再次打开这个ViewController并且viewWillAppear方法再次运行时,它仍然认为myTextView.text是空的,并尝试从服务器获取数据。myLabel.text的工作方式与我预期的

在我的iOS应用程序中,我有带有标签和文本视图的ViewController。默认情况下,它们都没有文本。在VIEWWILLEXPENCE的ViewController方法中,我检查-如果它们为空-我将来自服务器的一些字符串放入这些标签和文本视图中。它工作正常,我在屏幕上看到了这个字符串

但当我再次打开这个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
            }

首先,您发布的代码看起来不像是您正在使用的代码-这不会编译。您需要关闭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()
    }
}

您是要重新加载此视图控制器,还是每次都要创建一个新的视图控制器实例?

能否发布您已实现的代码?如何在内存中加载此控制器。。?它是重新加载的吗。。?这是第二次在viewdidload中放置断点,如果再次调用它,则再次加载控制器。我添加了我实现的代码。我假设从服务器获取数据部分发生在后台线程上,我看不出你会回到主线程来更新UI。它正在正确地更新UI你是对的-这是我代码的缩短版本。我使用MMDrawerController显示视图。