在ViewController之间传递数据时出错

时间:2015-01-17 12:28:57

标签: ios swift uiviewcontroller uitabbarcontroller uitextview

我有一个奇怪的问题。我有一个UITextField我可以写在里面,文本直接显示在UITextView中。我正在使用UITabBarControllerUIViewController之间切换。 我正在使用该类来保存数据(在TabBarController.swift中写道):

public class ModelData {

    var text = ""
    var color:UIColor? = nil

}

保存数据的代码(在ViewController.swift中写道):

override func viewDidDisappear(animated: Bool) {
    let model = (self.tabBarController as TabBarViewController).model
    model.color = textview.textColor
    model.text = textview.text
}

提供数据的代码(在SecondViewController.swift中写的):

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    let model = (self.tabBarController as TabBarViewController).model

    textview.textColor = model.color
    textview.text = model.text

}

所以,我的问题是:因为我使用了UItextField我可以在里面写的内容我在UITextView中禁用了用户交互,但现在我需要启用这些选项,因为我想滚动{ {1}}。但是现在当我在ViewController之间传递数据时,不会保存数据。 (仅保存颜色)

1 个答案:

答案 0 :(得分:0)

无论出于何种原因,(看起来像是一个错误),textColor的{​​{1}}属性会在Interface Builder中取消选中UITextView时返回nil。如果代码中的Selectable属性设置为selectable,则不会出现问题。因此,解决方法是在Interface Builder中选中false并将其设置为Selectable中的false

viewDidLoad