从没有故事板的另一个类或方法访问TextField

时间:2018-09-20 20:31:03

标签: ios swift uitextfield

好的,这可能是有史以来最基本的问题之一,但是我发现的所有答案都使用情节提要来声明标签,文本字段或任何需要更改的元素的出路。但是,我不使用情节提要板,也不用代码编写所有内容。现在,我有一个功能setupViews,在其中定义了一个文本字段:

let usernameInput = UITextField()

现在,我可以在setupViews()类中完美地设置文本或占位符,但是如何在外部访问它呢?例如,如果我有一个函数logIn(),我想调用usernameInput.text并在此函数中使用它。

有人可以指出我正确的方向吗?我是否需要在另一个文件或其他文件中全局声明此文本字段?

1 个答案:

答案 0 :(得分:0)

在代码中创建视图时,我总是将属性与具有所有这些不同显示值的视图相关联。

我尚未测试此代码以查看,但希望以下内容可以给您一个想法。

import UIKit 

struct {
    var name: String
}

class CustomViewController : UIViewController {
    // some struct which contains data for view
    var customViewData : ViewDataInfo? {
        didSet {
            labelOnScreen.text = customViewData.name
        }
    }

    var labelOnScreen: UILabel = {
        let label = UILabel()

        label.text = "Placeholder information..."

        // stuff auto layout 
        label.translateAutoresizingMaskIntoConstraints = false

        return label
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        setupView()
    }

    private func setupView() {
        view.addSubview(label)

        // set your constraints here
    }
}