Swift Xib,标签文本更改

Swift Xib,标签文本更改,swift,label,xib,Swift,Label,Xib,如何处理挂在xib上的标签 lblName.text = "Label Text" 我得到了一个与 在展开可选值时意外发现nil 您应该按照以下方式更新自定义的视图类 首先,打开View.xibfile setfile's Ownercustom类以查看View,如下图所示 class View: UIView { private var view: UIView! @IBOutlet weak var name: UILabel! @IBOutlet wea

如何处理挂在xib上的标签

lblName.text = "Label Text" 
我得到了一个与

在展开可选值时意外发现nil


您应该按照以下方式更新自定义的
视图

首先,打开
View.xib
file set
file's Owner
custom类以查看
View
,如下图所示

class View: UIView {

    private var view: UIView!

    @IBOutlet weak var name: UILabel!

    @IBOutlet weak var firstname: UILabel!

    override init(frame: CGRect) {
        super.init(frame: frame)
        xibSetup()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        xibSetup()
    }

    //FIXME:- Set up
    func xibSetup() {

        view = loadViewFromNib()
        view.frame = bounds
        view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight]
        addSubview(view)
    }

    func loadViewFromNib() -> UIView {

        let bundle = Bundle(for: type(of: self))
        let nib = UINib(nibName: "View", bundle: bundle)
        let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView

        return view
    }





}

设置
ui标签后
i插座,如下图所示

class View: UIView {

    private var view: UIView!

    @IBOutlet weak var name: UILabel!

    @IBOutlet weak var firstname: UILabel!

    override init(frame: CGRect) {
        super.init(frame: frame)
        xibSetup()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        xibSetup()
    }

    //FIXME:- Set up
    func xibSetup() {

        view = loadViewFromNib()
        view.frame = bounds
        view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight]
        addSubview(view)
    }

    func loadViewFromNib() -> UIView {

        let bundle = Bundle(for: type(of: self))
        let nib = UINib(nibName: "View", bundle: bundle)
        let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView

        return view
    }





}

然后打开View.swift文件并粘贴下面给出的代码

class View: UIView {

    private var view: UIView!

    @IBOutlet weak var name: UILabel!

    @IBOutlet weak var firstname: UILabel!

    override init(frame: CGRect) {
        super.init(frame: frame)
        xibSetup()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        xibSetup()
    }

    //FIXME:- Set up
    func xibSetup() {

        view = loadViewFromNib()
        view.frame = bounds
        view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight]
        addSubview(view)
    }

    func loadViewFromNib() -> UIView {

        let bundle = Bundle(for: type(of: self))
        let nib = UINib(nibName: "View", bundle: bundle)
        let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView

        return view
    }





}

现在您可以在
ViewController

中查看
View
类的变量,在哪里出现错误?您需要将xib链接到swift文件,然后将每个文本框链接到相应的文本框…可以举个简单的例子吗?我的示例错误:let view=nib.instantiate(withOwner:self,options:nil)[0]as!UIVIEW在此处输入图像描述