Swift nibファイル使用上の注意事項

1043 ワード

Swiftを使用するnibファイルを含むViewControllerを初期化する場合、iOS 9は正常に使用できるが、iOS 8ではViewControllerが正常にnibファイルにロードできないことが判明する.YGJoinRateViewControllerにおいて初期化器がinit(nibName: "YGJoinRateViewController", bundle: nil)を使用しない場合、iOS 8.xコントローラIBOutletの属性はすべてnilであるが、iOS 9では完全に正常である.
nibを含むViewControllerを使用して、継承に問題がないことを保証しながらiOS 8をよくサポートする場合は、super.init(nibName: "YGJoinRateViewController", bundle: nil)を追加します.
参考文献
let vc = YGJoinRateViewController()
navigationController?.pushViewcontrollerHideTabber(vc)
//YGJoinRateViewController
class YGJoinRateViewController: 
UIViewController,UITableViewDelegate,UITableViewDataSource{
    @IBOutlet weak var lablelCountPecrent: UILabel!
    @IBOutlet weak var labelEmpty: UILabel!
    init() {
          super.init(nibName: "YGJoinRateViewController", bundle: nil)
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(nibName: "YGJoinRateViewController", bundle: nil)
    }
}