xcode 无法在CustomView Xib文件上与IBOutlet交互

6yoyoihd  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(136)

我是一个Swift初学者,我正在使用Swift上的CustomView Xib Files。
我有五个自定义视图,分别命名为HogeAView~HogeEView。
从HogeAView到HogeCView,视图可以在不描述任何错误的情况下加载,并能够与我放置的所有插座进行交互。
但是HogeDView和HogeEView,与其他三个视图相同的方式不起作用。两个视图都加载了,但是当我交互时,我放置的所有插座都没有返回任何响应。(例如,当按下按钮时,UIButton不会 Flink )
我确认文件的所有者UIViewClass是正确的,与代码中写的名称相同,并且没有阻止交互的荒谬视图。
如果你知道如何解决这个问题,请给予我一个解决方案。
谢谢大家。

import UIKit

class HogeDView: UIView {
 
    override init(frame: CGRect){
        super.init(frame: frame)
        loadNib()
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
        loadNib()
    }

    func loadNib(){
        let view = Bundle.main.loadNibNamed("HogeDView", owner: self, options: nil)?.first as! UIView
        view.frame = self.bounds
        self.addSubview(view)
    }
    
}
import UIKit

class HogeDViewController: UIViewController {
    
    override func loadView() {
        super.loadView()
        
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view = HogeDView()
    }
}

enter image description here

  • 填充文件所有者中的HogeDView类,而不是Xid Files中层次结构的视图中。
  • 已重试创建HogeDview和HogeDController。
  • 证实了前方没有荒谬的景象。
  • 确认UI连接正确
yduiuuwa

yduiuuwa1#

我的第一个代码是一个在线教程的副本...它应该必须正确工作...基本上我发现的教程是完全错误的。
DonMag的评论帮助我解决了这个问题。

// Instantiate the HogeDView from its Xib file
let hogeDView = Bundle.main.loadNibNamed("hogeDView", owner: self, options: nil)?.first as! UIView

// Set the frame for the HogeDView
hogeDView.frame = self.view.bounds
        
// Add the HogeDView as a subview to the parent view
self.view.addSubview(hogeDView)

感谢Donmag和HangarRash给我的反馈。

相关问题