美文网首页iOS学习录
关于Navigation犯的一些错

关于Navigation犯的一些错

作者: 牵着蜗牛散步Zz | 来源:发表于2017-04-02 11:49 被阅读144次

ios中有两种呈现ViewController的方式,一种是push一种是present。这两种有一定的区别,首先是界面弹出的方式,其次是工作的原理,push这种方式类似一个栈, push一个viewController就相当于向栈中压入一个viewController,最后所有的视图都是存在栈中的,而present则不是以栈的形式工作的,它是独立的。

下面分别是两种调用方式

[self.navigationController pushViewController:(UIViewController*) animated:(BOOL)];

[self presentViewController:(UIViewController*) animated:(BOOL) completion:^(void)completion];

从源码可以看出来,pushViewController是作用于navigationController 的。也就是说,如果想要使用pushViewController来进行界面的跳转,就必须保证当前页面有导航栏(navigationController )。至于presentViewController,就没有这个限制条件了,在当前页面没有导航栏的时候,也可以使用。

之前没有搞清楚self presentViewController与self.navigationController presentViewController的区别,两者的区别就在于前者呈现出来的视图是没有navigation的,后者是在当前已有的navigationController的基础上再present视图,这时候present出来的视图是带有navigation,而且用的是当前的navigation。

相关文章

  • 关于Navigation犯的一些错

    ios中有两种呈现ViewController的方式,一种是push一种是present。这两种有一定的区别,首先...

  • Android Jetpack之Navigation源码分析

    Android Jetpack之Navigation源码分析 Android Navigation简介 关于Fra...

  • 找到“理性犯的错”

    最近涉猎了一些心理学的著作,《少有人走的路》、《理性犯的错》等。而给我最大启发的是《理性犯的错》,那些我们所认为的...

  • 关于navigation bar、tab bar、status

    一、关于navigation controller 和 navigation bar的使用 1.页面隐藏navig...

  • 犯 错

    作者/尤金 在上海的一家餐馆里,负责为我们上菜的那位女侍,年轻得像是树上的一片嫩...

  • 犯 错

    在上海的一家餐馆里,负责为我们上菜的那位女侍,年轻得像是树上的一片嫩叶。 她捧上蒸鱼时,盘子倾...

  • 记录一些粗心犯的错

    1.写了一个批量插入的方法,插入的时候一直报有个参数找不到。 仔细检查查发现#{communityId,jdbcT...

  • 雪落下来 去犯她该犯的错

  • 为什么“老革命”解决不了“新问题”

    以前已经说过两种我们犯的想当然的错,请点击阅读(那些我们犯的想当然的错(二))、(那些我们犯的想当然的错(一)) ...

  • 自己犯的错自己承担

网友评论

    本文标题:关于Navigation犯的一些错

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