zoukankan      html  css  js  c++  java
  • Swift反射机制实现 AppDelegate 字符串获取类并成为根控制器

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        
            
            window = UIWindow(frame: UIScreen.main.bounds)
            
            // 依据String名字拿到控制器(添加项目名称,命名空间,不能有数字和特殊符号)
            // 返回的是AnyClass? 需要as?强转
            // 控制器添加Type类型
            let rootControl = NSClassFromString("SwiftyDemo.ViewController") as? UIViewController.Type
            
            let vc = rootControl?.init()
            
            window?.rootViewController = vc
            
            window?.makeKeyAndVisible()
             
            return true
        }

       同时可以用info.plist获取命名空间

        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        
            window = UIWindow(frame: UIScreen.main.bounds)
            
            // 依据String名字拿到控制器(添加项目名称,命名空间,不能有数字和特殊符号)
            // 返回的是AnyClass? 需要as?强转
            // 控制器添加Type类型
    //        let rootControl = NSClassFromString("SwiftyDemo.ViewController") as? UIViewController.Type
            
            // 获取命名空间的值,可选
            let str = Bundle.main.infoDictionary?["CFBundleName"] as? String ?? ""
            
            let con = NSClassFromString(str + "." + "ViewController") as? UIViewController.Type
            
            let vc = con?.init()
            
            window?.rootViewController = vc
            
            window?.makeKeyAndVisible()
             
            return true
        }
  • 相关阅读:
    对于delphi 三层的理解
    XE6调用android标准功能
    修复 XE7 Frame 内 PopupMenu 快捷键失效问题 by 龟山阿卍
    最大熵模型 二
    最大熵模型
    算法复习-平面内极大值点
    算法复习-生成全排列
    算法复习-归并排序
    算法复习-快速排序
    连续特征的离散化
  • 原文地址:https://www.cnblogs.com/sgxx/p/6096766.html
Copyright © 2011-2022 走看看