从另一个 class 或没有故事板的方法访问 TextField
Access TextField from another class or method without storyboard
好的,这可能是有史以来最基本的问题之一,但我找到的所有答案都使用故事板来声明标签、文本字段或任何需要更改的元素的出口。但是,我不使用故事板,而是用代码编写所有内容。现在我有一个函数 setupViews,我在其中定义了一个文本字段:
let usernameInput = UITextField()
现在,我可以在这个 setupViews() class 中完美地设置文本或占位符或任何内容,但我如何才能在外部访问它?例如,如果我有一个函数 logIn(),我想调用 usernameInput.text 并在这个函数中使用它。
谁能给我指出正确的方向?我是否需要在全局、另一个文件或其他文件中声明此文本字段?
当我在代码中创建视图时,我总是将 属性 与具有所有这些不同显示值的视图相关联。
我还没有测试过这段代码,但希望下面的内容能给你一个想法。
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
}
}
好的,这可能是有史以来最基本的问题之一,但我找到的所有答案都使用故事板来声明标签、文本字段或任何需要更改的元素的出口。但是,我不使用故事板,而是用代码编写所有内容。现在我有一个函数 setupViews,我在其中定义了一个文本字段:
let usernameInput = UITextField()
现在,我可以在这个 setupViews() class 中完美地设置文本或占位符或任何内容,但我如何才能在外部访问它?例如,如果我有一个函数 logIn(),我想调用 usernameInput.text 并在这个函数中使用它。
谁能给我指出正确的方向?我是否需要在全局、另一个文件或其他文件中声明此文本字段?
当我在代码中创建视图时,我总是将 属性 与具有所有这些不同显示值的视图相关联。
我还没有测试过这段代码,但希望下面的内容能给你一个想法。
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
}
}