【问题标题】:Instantiate Nib and access its SubViews实例化 Nib 并访问它的子视图
【发布时间】:2018-06-28 18:33:04
【问题描述】:

我有一个模型类:

import UIKit

class MyModel: NSObject
{
   var str1 : String = "Test String 1"
   var str2 : String = "Test String 2"
   var str3 : String = "Test String 3"
}

我有一个带有 3 个标签的 nib 文件和一个带有插座和函数的 swift 类来返回它的 nib:

import UIKit

class MyNibClass: UIView
{
    @IBOutlet weak var label1: UILabel!
    @IBOutlet weak var label2: UILabel!
    @IBOutlet weak var label3: UILabel!

    func instanceMyNib() -> UIView
    {
        let view =  UINib(nibName: "myNib", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
        return view
    }
}

在我的 viewController 中,我使用此代码来初始化我的笔尖并将其添加到 viewController 视图

import UIKit

class myViewController: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        let model : MyModel = MyModel()
        let nibClass : MyNibClass = MyNibClass()
        let viewFromNib = nibClass.instanceMyNib()
        view.addSubview(viewFromNib)
    }
}

我无法解决的问题是如何更改实例化的笔尖标签? 我在 stackOverflow 上阅读了很多答案,但找不到明确的答案。

连接 nib-itsClass-customModel 的最佳方式是什么?

【问题讨论】:

    标签: ios swift xcode uiview nib


    【解决方案1】:

    改变这一行

    let view =  UINib(nibName: "myNib", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
    

    let view =  UINib(nibName: "myNib", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! MyNibClass
    

    那么在你添加自定义视图之前你可以

    let viewFromNib = nibClass.instanceMyNib()
    viewFromNib.label1.text = "anyThing"
    view.addSubview(viewFromNib)
    

    【讨论】:

    • 谢谢,您的回答正是我所需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2013-03-22
    相关资源
    最近更新 更多