无需制作IBOutlet即可访问UIelements

时间:2017-12-26 06:12:06

标签: ios swift uikit

我想访问viewController的UIElements(例如Labels和TextFields等)而不进行IBOutlet连接。

e.g。我在viewController中有一个UITextField,我希望像viewControllerName.textFieldName.text = "something I will set here"一样访问它 或者作为Android findViewById("id of element")的相同概念 我使用过“标签”,但它不符合我的要求。

2 个答案:

答案 0 :(得分:0)

您将以编程方式创建UITextField,并以编程方式访问UITextFieldName.text =“Some”。
以编程方式Check This link

创建标签

答案 1 :(得分:0)

是的,你可以在不进行IBOutlet连接的情况下访问viewController的UIElements(例如Labels和TextFeilds等)。首先给UIElement一个标签。 然后尝试这个。希望这会有所帮助:

如果您想在同一个viewController

中访问它
let label = self.view.viewWithTag(4) as? UILabel
label?.text = "Hello there"

如果您想从其他viewController 访问它 在 firstViewControler

     import UIKit
        internal weak var FirstViewController: ViewController?

//in viewDidLoad
        override func viewDidLoad() {
            super.viewDidLoad()
            FirstViewController = self
        }

它可以在所有其他viewControllers中访问 然后在secondViewController

let newlabel = homeViewController?.view.viewWithTag(4) as? UILabel
    newlabel?.text = "new change"