在我的iOS应用程序中,我使用带有Label和TextView的ViewController。默认情况下,它们都没有文本。在ViewController的viewWillAppear方法中,我检查 - 如果它们是空的 - 我在服务器中放置了一些Label和TextView中的字符串。它工作正常,我在屏幕上看到这个字符串。
但是当我再次打开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)
首先,您发布的代码看起来并不像您正在使用的代码 - 这不会编译。您需要关闭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()
}
}
您是在重新加载此视图控制器,还是每次都在创建它的新实例?