Swift从另一个类访问IBOutlet

时间:2016-01-06 03:51:19

标签: ios

所以我的视图控制器有一个IBOutlet属性,可以让视图控制器访问添加的视图(一个视图拖入到storyboard文件中的视图控制器中,视图类也有一个UILabel属性出口) 我正在尝试修改视图类中的uilabel文本。 首先我尝试直接使用view.label.text =“some text”,但它没有用。 然后我在视图类中编写了一个函数来设置标签文本,神奇地它起作用。为什么第一种方式不起作用而第二种方式呢?

class Controller : UIViewController {

    @IBOutlet weak var answerResultView: AnswerResultView!

    @IBAction func button(sender : AnyObject){
        answerResultView.text = "some text" //this line doesn't work
        answerResultView.setText("some text")
    }
}

class TheView : UIView {

    @IBOutlet weak var label : UILabel!

    func setText(text : String){ 
        label.text = "Some text"
    }
}

非常感谢您的回答

2 个答案:

答案 0 :(得分:1)

试试这个

answerResultView.label.text = "some text"

答案 1 :(得分:1)

在第二种方式中,您将调用视图的方法来设置标签的文本。

第一种方法是错误的,因为您尝试设置视图而不是其标签。 使用

answerResultView.label.text = "some text"