为什么我的弹出视图是空的?

Why is my popup view is empty?

我正在尝试制作类似于 this one 的弹出视图。到目前为止我所做的是:

我的代码:

ViewController.swift

import UIKit

class ViewController: UIViewController {

    @IBAction func showPopup(sender: AnyObject) {
        var x = PopupViewController()
        x.show(self.view)
        x.showAnimate()
    }
}

PopupViewController

import UIKit

class PopupViewController : UIViewController {

    func show(tView : UIView) {
        tView.addSubview(self.view)
        println("here")
        self.view.backgroundColor = UIColor.redColor()

    }

    func showAnimate() {
        self.view.transform = CGAffineTransformMakeScale(1.0, 1.0)
        self.view.alpha = 0.3
    }

}

结果:当按下按钮时,我在视图上得到了一个淡红色的覆盖层(因为我添加的视图是红色的并且具有 30% 的不透明度),但是新视图是空的。没有按钮,没有标签,没有不同颜色的区域。

我需要做什么才能让 popup.xib 显示它的元素?


更新

除了 Nerkyator 的回答之外,我还缺少文件所有者和主视图之间的连接。只需右键单击 "File's Onwer" 并从视图拖动到它下方两行的主视图。

您需要手动加载与您的视图关联的 xib。 我使用这个扩展 (found at this link) 修改来支持 UIViewController 然后我在需要的时候调用它。

extension UIViewController {
    class func loadFromNibNamed(nibNamed: String, bundle : NSBundle? = nil) -> Self? {
        return UINib(
            nibName: nibNamed,
            bundle: bundle
            ).instantiateWithOwner(nil, options: nil)[0] as? UIViewController
    }
}

然后

@IBAction func showPopup(sender: AnyObject) {
    var x = PopupViewController.loadFromNibNamed("popup")
    //do what you need with x
}