zoukankan      html  css  js  c++  java
  • addChildViewController的一个简单跳转展示子控制器

    使用addChildViewController可以有效节约内存,且可以方便的展示自己想展示的子控制器;下面是用swift一个简单实现跳转的过程。

    class first: UIViewController {

        //twothreefour分别为三个控制器

        var two: Two?

        var three: Three?

        var four: Three?

        //child测试

        var addChildVCclick: UIButton?

        var currentC: UIViewController?

     

        override func viewDidLoad() {

            super.viewDidLoad()

            self.view.backgroundColor = UIColor.blueColor()

            self.setupSubview()

        }

        

        func setupSubview() {

            addChildVCclick = UIButton()

            self.view.addSubview(addChildVCclick!)

            addChildVCclick?.frame = CGRectMake(200, 100, 20, 20)

            addChildVCclick?.backgroundColor = UIColor.greenColor()

            addChildVCclick?.userInteractionEnabled = true

            addChildVCclick?.addTarget(self, action: "addChild", forControlEvents: .TouchDown)

        }

        //点击按钮实现子控制器的添加

        func addChild(){

            print("add child")

            two = Two()

            self.addChildViewController(two!)

            three = Three()

            self.addChildViewController(three!)

            four = Three()

            four!.view.backgroundColor = UIColor.brownColor()

            self.addChildViewController(four!)

            //只有将子控制器的view添加,才会展示出子控制器

            self.view.addSubview(four!.view)

            if let f = four {

                //在第四个控制器中添加按钮,点击实现子控制器切换

                addChildVCclick?.frame = CGRectMake(200, 120, 20, 20)

                addChildVCclick?.backgroundColor = UIColor.blueColor()

                addChildVCclick?.userInteractionEnabled = true

                addChildVCclick?.addTarget(self, action: "changeViewController", forControlEvents: .TouchDown)

                f.view.addSubview(addChildVCclick!)

                currentC = f  //必须设置currenC(全局属性)

            }

        }

        func changeViewController() {

            print("changeViewController")

            two?.view.backgroundColor = UIColor.redColor()

            self.transitionFromViewController(currentC!, toViewController: two!, duration: 1, options: .TransitionCurlUp, animations: { () -> Void in

                print("animations")

                }) { (com) -> Void in

                    print("com")

                    self.currentC = self.two//在这里真正实现跳转,简单方便

                    //跳转效果由options参数决定

            }

        }

    }

  • 相关阅读:
    4、pytest -- fixtures:明确的、模块化的和可扩展的
    CentOS -- 新建用户并使能密钥登录
    3、pytest -- 编写断言
    2、pytest -- 使用和调用
    1、pytest -- 安装和入门
    《Fluent Python》 -- 一个关于memoryview例子的理解过程
    SecureCRT 连接 Centos7.0 (NAT模式),且能连接公网。
    SecureCRT 连接 Centos7.0 (桥接模式),且能连接公网。
    Centos7.0 三种网络适配器
    Centos 7.0 界面
  • 原文地址:https://www.cnblogs.com/hazhede/p/5462522.html
Copyright © 2011-2022 走看看