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

问题描述 投票:0回答:1

我是 Swift 的初学者,我正在研究如何在 Swift 上使用 CustomView Xib 文件。

我有五个CustomView,分别命名为HogeAView~HogeEView

从 HogeAView 到 HogeCView,视图可以加载而不会描述任何错误,并且能够与我放置的所有插座进行交互。

但是 HogeDView 和 HogeEView,与其他三个视图相同的方式不起作用。 两个视图都已加载,但我放置的所有插座在我交互时都没有返回任何响应。 (例如,按下按钮时 UIButton 不会闪烁)

我确认Files'owner UIViewClass是正确的,和代码中写的名字一样,并且没有阻止交互的荒谬的Views。

如果你知道如何解决问题,请给我一个解决方案。

谢谢。

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

  • 在 **File's owner ** 中填充 HogeDView 类,而不是在 Xid Files 的层次视图中。
  • 重试制作 HogeDview 和 HogeDController.
  • 确认没有荒谬的看法上正面。
  • 确认UIConnection是正确的
ios swift xcode xib
1个回答
0
投票

我的第一个代码是网上教程的副本...它应该是正确的...基本上我发现的教程是完全错误的。

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,感谢你们给我反馈。

© www.soinside.com 2019 - 2024. All rights reserved.