【问题标题】:Access UIelements without making IBOutlets在不创建 IBOutlets 的情况下访问 UIelements
【发布时间】:2017-12-26 06:12:05
【问题描述】:

我想在不建立 IBOutlet 连接的情况下访问 viewController 的 UIElements(例如 Labels 和 TextFields 等)。

例如我在 viewController 中有一个 UITextField,我想像 viewControllerName.textFieldName.text = "something I will set here" 一样访问它 或者和Android一样的概念findViewById("id of element") 我使用了“标签”,但它不符合我的要求。

【问题讨论】:

    标签: ios swift uikit


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      如果你想在同一个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"
      

      【讨论】:

      • 感谢您的回答。但我不想使用标签
      • 你写过我使用过标签,所以我想这会有所帮助
      • 没有 IBOutlet 连接或标签的 UIElements 没有身份,没有任何身份您无法访问它们
      • 它们是否可以通过故事板源代码中自动生成的 id 访问
      • 自己的故事板为每个 UIElements 创建 id,但它仅适用于他们自己的标签下的故事板(例如标签
      猜你喜欢
      • 2021-02-27
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      相关资源
      最近更新 更多