Swift 3.0 遇到的一些问题

来源:互联网 发布:传奇db数据库编辑器 编辑:程序博客网 时间:2024/06/06 08:31

1、导航控制器跳转时隐藏tabbar

在导航控制器中重写以下方法

override func pushViewController(_ viewController: UIViewController, animated: Bool) {        if self.childViewControllers.count > 0 {            viewController.hidesBottomBarWhenPushed = true        }        super.pushViewController(viewController, animated: animated)    }

2、设置控件y值从导航栏下面开始计算
在控制器中重写以下方法

    override func loadView(){        super.loadView()        //设置y从导航栏下开始        self.edgesForExtendedLayout = .bottom    }

3、通过控制器名添加子控制器

private func addChildViewController(childControllerName : String,title : String,normalImage : String) {        // 1.获取命名空间        guard let clsName = Bundle.main.infoDictionary!["CFBundleExecutable"] else {            print("命名空间不存在")            return        }        // 2.通过命名空间和类名转换成类        let cls : AnyClass? = NSClassFromString((clsName as! String) + "." + childControllerName)        // swift 中通过Class创建一个对象,必须告诉系统Class的类型        guard let clsType = cls as? BaseViewController.Type else {            print("无法转换成BaseViewController")            return        }        // 3.通过Class创建对象        let childController = clsType.init()        // 设置TabBar和Nav的标题        childController.title = title        childController.tabBarItem.image = UIImage(named: normalImage)        // 包装导航控制器        let nav = BaseNavViewController(rootViewController: childController)        self.addChildViewController(nav)    }
0 0
原创粉丝点击