UIViewController切换及简单动画

UIViewController应该是我们最常用的。

那么最简单的切换方式是什么了?

func presentViewController(viewControllerToPresent: UIViewController,animated flag: Bool,completion: (() -> Void)?)


同时可以设置一些简单动画,淡入淡出,翻页等等

我们首先创建一个项目,他会有一个自带的视图控制器ViewController

然后我们再创建视图控制器用来切换。

import UIKit

class MyRootViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        self.view.backgroundColor=UIColor.lightGrayColor()
        
        let btn=UIButton(frame: CGRectMake(20,120,320,36))
        btn.setTitleColor(UIColor.blackColor(),forState: UIControlState.normal)
        btn.setTitle("返回",forState: UIControlState.normal)
        btn.addTarget(self,action: "back",forControlEvents: UIControlEvents.TouchDown)
        self.view.addSubview(btn)
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // dispose of any resources that can be recreated.
    }
    

    func back(){
        self.dismissViewControllerAnimated(true,completion: nil)
    }
    

}

我们可以看到这个类很简单就是一个UIViewController的子类。

给他创建button用来返回。


接下来,我们给自带的ViewController添加四个Button分别测试四种切换方式

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let btn=UIButton(frame: CGRectMake(20,100,36))
        btn.setTitle("垂直切换",forState: UIControlState.normal)
        btn.setTitleColor(UIColor.blackColor(),forState: UIControlState.normal)
        btn.tag=90
        btn.addTarget(self,action: "testAct:",forControlEvents: UIControlEvents.TouchDown)
        self.view.addSubview(btn)
        
        
        let btn1=UIButton(frame: CGRectMake(20,150,36))
        btn1.setTitle("旋转",forState: UIControlState.normal)
        btn1.setTitleColor(UIColor.blackColor(),forState: UIControlState.normal)
        btn1.tag=91
        btn1.addTarget(self,forControlEvents: UIControlEvents.TouchDown)
        self.view.addSubview(btn1)
        
        let btn2=UIButton(frame: CGRectMake(20,200,36))
        btn2.setTitle("淡入淡出",forState: UIControlState.normal)
        btn2.setTitleColor(UIColor.blackColor(),forState: UIControlState.normal)
        btn2.tag=92
        btn2.addTarget(self,forControlEvents: UIControlEvents.TouchDown)
        self.view.addSubview(btn2)
        
        let btn3=UIButton(frame: CGRectMake(20,250,36))
        btn3.setTitle("翻页",forState: UIControlState.normal)
        btn3.setTitleColor(UIColor.blackColor(),forState: UIControlState.normal)
        btn3.tag=93
        btn3.addTarget(self,forControlEvents: UIControlEvents.TouchDown)
        self.view.addSubview(btn3)
        
        
    }


button点击后对应的方法如下
    func testAct(b:UIButton){
        let rootVC=MyRootViewController()
        
        
        
        if(b.tag==90){
            rootVC.modalTransitionStyle = .CoverVertical
        }else if(b.tag==91){
            rootVC.modalTransitionStyle = .FlipHorizontal
        }else if(b.tag==92){
            rootVC.modalTransitionStyle = .Crossdissolve
        }else if(b.tag==93){
            rootVC.modalTransitionStyle = .PartialCurl
        }
        
        self.presentViewController(rootVC,animated: true,completion: nil)
        
        
    }

其中modalTr5ansitionStyle 是一个枚举,有四个值,分别代表四种奇幻方式

我们测试一下看效果吧。有问题欢迎加群讨论

苹果开发群 :414319235 欢迎加入 欢迎讨论问题

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...