代码之家  ›  专栏  ›  技术社区  ›  Mischa

推送和呈现带有单个推送动画的视图控制器

  •  1
  • Mischa  · 技术社区  · 6 年前

    从导航控制器的根视图控制器 Root

    • 我想推一个视图控制器 A
    • 然后立即显示另一个视图控制器 B .

    我怎么能同时用一个单人间 动画?

    (这背后的想法是视图控制器 A 允许编辑某些内容。如果未创建任何内容,则需要显示视图控制器 B 首先允许用户输入标题,然后创建内容。)

    我试过的:

    当我在视图控制器中执行以下操作时 A viewDidLoad() 方法:

    if content == nil {
        let createContentViewController = // instantiate new view controller instance
        present(createContentViewController, animated: false)
    }
    

    乌伊基特 也省略了 push 动画时间 animated 设置为假“假”,所以我根本没有动画。什么时候? 有生气的 设置为 true 我得到了一个双动画(先推,然后是模态)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   matt    6 年前

    你做你描述的事情有困难的原因是你不能 present 视图控制器A上的视图控制器B,直到视图控制器A是视图控制器层次结构的一部分,并且直到您按下它,它才是。

    因此,我建议在本文中不要使用呈现视图控制器。在我看来,您真正描述的是视图控制器A及其主视图(视图A),视图B在其前面。在创建视图控制器A和推动它之间,您可以很容易地做好准备。视图B仍然可以包含一个“解除”按钮或类似的按钮,您可以将其从屏幕上滑下,以显示视图A。

    如果出于代码组织的目的,您确实需要视图控制器B,那么让视图控制器A成为视图控制器B的自定义父视图控制器。该解决方案的一个很酷的功能是,可以使用嵌入segue在故事板中配置全部内容。如果我们按下视图控制器A和你 不要 需要视图控制器B,只需在按下前隐藏视图B。