首先我们先获取命名空间
let namespace = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String
首先命名空间从info.plist里面查找
屏幕快照 2016-05-03 下午2.07.51.png 屏幕快照 2016-05-03 下午2.08.00.png
根据命名空间传来的字符串先转换成anyClass
let cls:AnyClass = NSClassFromString(namespace + "." + childControllerName)! 【注:“ !”为非空,代表这里面不能为空,Swift就这点比较操蛋...有些必须选择是否为空,不像oc编译器不报错】
再次 根据这个常量转换成控制器
let vcCls = cls as! UIViewController.Type【注:as! 我就不介绍了 Type呢 我们稍微讲下 首先你是点不进去查看不了API的,那这个是起什么作用的呢? 你们可以搜搜,其实他就是告诉cls 是UIViewController这个类型】
控制器有了 那就初始化吧
let vc = vcCls.init()
这样控制器就创立成功了 大家试试吧..
网友评论