【发布时间】:2018-03-08 21:49:01
【问题描述】:
我的状态栏在我的 UITabBarController 的每个选项卡的根控制器中相应地起作用。一旦我使用 .overFullscreen modalPresentationStyle 通过 present(viewControllerToPresent:) 向 UIViewController 添加模式,它需要我通过发送它的 UIViewController 分配 preferredStatusBarStyle。我需要呈现的 UIViewController 具有清晰的背景并查看之前的 UIViewControllers 内容。我做错了吗?
【问题讨论】:
-
"一直不是现在的" ...是样式不对,还是标题和按钮不对?你在这棵树上哪里不对?导致状态栏不一致的事件顺序是什么?最重要的是,我建议备份并创建问题的the smallest possible reproducible example,而不是向我们展示一些理论上的视图控制器层次结构。我们需要可重现的问题示例。
-
当你要展示一个模态时,我应该从哪里展示它?下一个问题...是否有任何模式模式(我们最初的 tabbarcontroller 之后的几乎所有东西都是模式。)我只能知道哪个 View Controller 负责状态栏的颜色?
-
"我应该从哪里展示 [modal]?" ...当前视图控制器(不是视图控制器层次结构中的任何内容)。 “哪个视图控制器负责状态栏的颜色?” ...您刚刚以模态方式呈现的那个。 (注意,如果你提供了一个带有根视图控制器的导航控制器,你在导航控制器中执行此操作,而不是导航控制器的根控制器。)但是,标签栏控制器例外,其中
preferredStatusBarStyle来自任何视图控制器(或导航控制器)与标签相关联,而不是标签控制器本身。 -
再一次,我们不必猜测这里的问题是什么。你应该准确地告诉我们你在你的小照片中的位置,你是如何到达那里的,以及究竟出了什么问题。我们需要可重现的问题示例。否则,这个问题应该因为太宽泛和/或太不清楚而被关闭。
-
顺便说一句,如果你不
show/push,我不确定你为什么要使用导航控制器。看起来您正在到处使用模态present,因此尚不清楚导航控制器的用途。导航控制器present也没有意义,如图表/树的右上角所示。您通常为导航控制器设置根控制器。当你从那里呈现时,你是从那个根控制器呈现的,而不是导航控制器。与标签栏控制器相同;他们没有present关联的视图控制器。
标签: ios presentmodalviewcontroller presentviewcontroller