Создание Nib и доступ к его подвидам - PullRequest
0 голосов
/ 28 июня 2018

У меня есть модель класса:

import UIKit

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

У меня есть nib-файл с 3 метками и swift-класс с выходами и func для возврата его 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 view

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?

1 Ответ

0 голосов
/ 28 июня 2018

Изменить эту строку

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)
...