swift - 如何正确设置UITextView

时间:2016-11-13 17:08:41

标签: swift uitextview

我有一个只有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变量正确但实际上没有出现的问题。感谢您的任何建议

1 个答案:

答案 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