我有一个只有UITextView的视图控制器。我在使用另一个传递给视图控制器的UITextView时遇到问题。
这是视图控制器的代码:
(File类有一个字符串变量:name,和UITextView变量:content)
// MARK: Properties
var file: File?
@IBOutlet weak var textViewHome: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
navigationItem.title = file?.name
self.automaticallyAdjustsScrollViewInsets = false
print(file?.content.text)
print(textViewHome.text)
textViewHome = file?.content
print(textViewHome.text)
}
这些印刷语句的输出是:
Optional("hello")
hello
因此,使用正确的字符串设置textViewHome变量,但在运行应用程序时,文本视图中不会显示任何内容。我已经看到很多与此类似的问题,但是找不到UITextView.text变量正确但实际上没有出现的问题。感谢您的任何建议
答案 0 :(得分:1)
主要问题是您的视图层次结构(屏幕上显示的内容)有textViewHome
,因为它是viewController.view
的子视图。当您更改textViewHome的指针时,视图层次结构仍然具有旧的指针,因为您更改了viewController的指针,并且您没有触及层次结构。
设计改进:让文件拥有字符串而不是UITextView会更好。
class File{
var name: String
var content: String
}
在你的viewController中,你将有
textViewHome.text = file?.content //content is a string