运行App时,不显示.xib文件的内容。 Swift iOS

时间:2015-03-20 17:27:56

标签: ios swift uiview

我有一个.xib文件,它有几个按钮,其类名为ContentView

Set Class for xib

然后我按如下方式设置了课程。

class ContentView: UIView {
    override init() {

        // Size doesn't matter
        super.init(frame: CGRect(x: 0, y: 0: width: 500, height: 500))
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        fatalError("init(coder:) has not been implemented")
    }
}

现在假设我想在我的主ViewController课程中添加此视图 我用:

var contentView: ContentView = ContentView()
self.view.addSubview(contentView)

然而,contentView似乎没有被添加到我的主视图控制器中(我无法看到它,所以我认为它没有被添加。)

2 个答案:

答案 0 :(得分:1)

对Xib执行此过程

  vc : ViewController =  ViewController(nibName: "ViewController", bundle: nil) //change this to your class name

     self.presentViewController(vc, animated: true, completion: nil)

并确保:您正在使用nibName,否则您的xib预加载内容将不会显示。

答案 1 :(得分:0)

实例化这样的视图不会使用您的xib文件。相反,您使用 -[NSBundle loadNibNamed:owner:options:]并提供必要的输入(笔尖名称,所有者等)。

使用- loadNibNamed:owner:options:会产生的另一个问题是您在fatalError实现中调用initWithCoder:,该实现用于通过解码进行nib实例化。相反,请正确实施initWithCoder: