• Swift


    在Swift ViewController 默认构造方法不关联同名的xib文件

    在使用OC的时候,调用ViewController的默认构造函数,会自动关联到一个与ViewController名字相同的xib文件上,

    这样无疑方便了开发者,减少了代码量。但不知道为什么,在swift中,新建ViewController实例,不在默认关联xib

    一定要开发者指定xib的名字,这对于有代码洁癖的人是不可接受的,因为通常情况下,

    xib的名字一定是和ViewController的名字相同的。 

    // Objective C中的写法
    
    TwoViewController *v = [[TwoViewController alloc] init]; //这样会把TwoViewController默认关联到TwoViewController.xib上
    
    // 等同调用了方法
    
    TwoViewController *v = [[TwoViewController alloc] initWithNibName:@"TwoViewController" bundle:nil];
    
    // Swift中的写法
    
    let v = TwoViewController() //不会关联TwoViewController.xib文件
    
    // 一定要指定xib文件
    
    let v = TwoViewController(nibName: "TwoViewController", bundle: nil)
    
    // 我们改怎样让TwoViewController()去找同名字的xib文件呢,
    // 其实原来很简单,重写init方法就行了, 
    // 新建BaseViewController.swift 重写init方法,
    // 其他的ViewController继续于BaseViewController。
    
    override init() {
    
        // 获取当前Class的名字,在swift中class名字前会加入Module名字,所以这里以'.'划分,取'.'后面的字符串.
    
        super.init(nibName: (self.classForCoder.description() as NSString).componentsSeparatedByString(".")[1] as NSString, bundle: NSBundle.mainBundle())
    
    }
    
    required init(coder aDecoder: NSCoder) {
    
        super.init(coder: aDecoder)
    
    }
    

      

  • 相关阅读:
    Servlet笔记2--模拟Servlet本质、第一个Servlet程序、将响应结果输出到浏览器中
    Servlet笔记1--概述
    Spring笔记13--SSH--全注解开发
    Spring4笔记12--SSH整合3--Spring与Struts2整合
    Spring4笔记11--SSH整合2--SpringWeb
    Spring4笔记10--SSH整合1--Spring与Hibernate整合
    局部变量表
    阿里云centos7使用yum安装mysql的正确姿势
    shell parameter
    maven 坐标
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5201800.html
Copyright © 2020-2023  润新知