     }
     
     func commonInit() {
-        addSubview(contentView)
-        contentView.pinToSuperviewEdges()
-        contentView.translatesAutoresizingMaskIntoConstraints = false
-        contentView.userInteractionEnabled = false
+        if let contentView = contentView {
+            addSubview(contentView)
+            contentView.pinToSuperviewEdges()
+            contentView.translatesAutoresizingMaskIntoConstraints = false
+            contentView.userInteractionEnabled = false
+        }
     }
     
     override func awakeFromNib() {

        titleLabel?.text = titleForState(.Normal)
        setTitle(nil, forState: .Normal)
    }

}

import UIKit

class NibButton: UIButton {
    
    // MARK: - Variables
    
    /// Override in subclass
    var contentView: BFWNibView? {
        return nil
    }
    
    // MARK: - Init
    
