美文网首页
ViewController跳转的两种方式

ViewController跳转的两种方式

作者: 土豆吞噬者 | 来源:发表于2019-08-27 10:28 被阅读0次

模态跳转

使用present可以以模态方式显示ViewController,当ViewControllerA以模式方式显示ViewControllerB后,ViewControllerA的presentedViewController属性会设置为ViewControllerB,ViewControllerB的presentingViewController属性会设置为ViewControllerA。

    class func show(caller:UIViewController){
        let storyboard=UIStoryboard(name: "Main", bundle: nil)
        let viewController=storyboard.instantiateViewController(withIdentifier: "TestAViewController")
        caller.present(viewController,animated: true, completion: nil)
    }

使用dismiss可以关闭ViewController的presentedViewController,如果ViewController没有presentedViewController,则会要求presentingViewController调用dismiss关闭自己,所以正确关闭自己的方法是调用presentingViewController的dismiss方法。

如果连续显示多个ViewController,对栈中最底部的ViewController调用dismiss会使栈上方所有ViewController关闭。

presentingViewController?.dismiss(animated: true, completion: nil)

导航控制器跳转

NavigationController使用栈的方式管理ViewController,使用pushViewController跳转到ViewController,使用popViewController返回上一个ViewController,导航栏自带返回按钮返回上一个ViewController。

navigationController?.pushViewController(viewController, animated: true)
navigationController?.popViewController(animated: true)

相关文章

网友评论

      本文标题:ViewController跳转的两种方式

      本文链接:https://www.haomeiwen.com/subject/hsmsectx.html