美文网首页
swift中UIViewController默认加载的xib文件

swift中UIViewController默认加载的xib文件

作者: 小沫360 | 来源:发表于2016-06-28 22:33 被阅读2143次

ios9在使用方法ViewController()实例化时,会默认加载同名ViewController.xib, ios8则默认不加载,这样导致在实例化一个ViewController的时候,要写一大串代码,下面将提出一种方案解决该问题。
实现ViewController默认加载同名xib

新建BaseViewController, 重写init方法,其他ViewController继承于Base


override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {

        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        
    }
    
    //3.重写无参数初始化方法,自动调用xib文件
    
    convenience init() {
    
       let nibNameOrNil = String(self.dynamicType)
        
        //考虑到xib文件可能不存在或被删,故加入判断
        
        if NSBundle.mainBundle().pathForResource(nibNameOrNil, ofType: "nib") != nil
            
        {
            
            self.init(nibName: nibNameOrNil, bundle: nil)
            
        }else{
        
            self.init(nibName: nil, bundle: nil)
            
            self.view.backgroundColor = UIColor.whiteColor()
        
        }
        
        
        
        
    }
    
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }


demo下载

相关文章

网友评论

      本文标题:swift中UIViewController默认加载的xib文件

      本文链接:https://www.haomeiwen.com/subject/rrgtjttx.html