该应用程序有一个TabController,它由4个子视图控制器控制。
由于我想在状态栏上设置消息,我必须在状态栏所在的位置创建UILabel并隐藏原始状态栏。为了使原始状态栏返回,我创建了一个计时器,当时间到期时,状态栏被取消隐藏,UILabel被删除。
假设我留在一个视图并设置消息。现在消息可以正常显示。在时间到期之前,我通过点击Tab Control切换到另一个视图。
现在问题出现了:UILabel消失了(此时,状态栏仍然没有回来)。只有选定的视图显示并占据UILabel刚刚覆盖的区域。
当时间到期时,状态栏会返回,但它不会推动应用程序重新组织视图和状态栏的布局。然后状态栏与视图重叠。
我想我可能不了解iOS中的视图组织规则。请帮忙赐教..
非常感谢
答案 0 :(得分:0)
如果您希望UILabel
保持在其他所有位置之上,请将其添加到窗口中。每个视图控制器的view
都有一个window
属性,可能是与标签栏控制器的所有视图控制器相同的窗口。
[self.view.window addSubview:messageLabel];