用屏幕转储来解释:
用户按下启动第 3 方编译的 ViewController 的按钮。这个第三方 ViewController 接管了整个屏幕并隐藏了状态栏。一旦用户完成它,他们就会回到第一个屏幕(上图),最终看起来像这样:
到目前为止,我已经尝试过:
- (void)viewWillAppear:(BOOL)animated {
self.view.frame = [[UIScreen mainScreen] applicationFrame];
[self.view setNeedsLayout];
}
但我仍然无法按下初始 UINavigationBar
========================
更新:
我已经使用以下方法修复了它:
CGRect frame = self.navigationController.navigationBar.frame;
frame.origin.y = 20;
self.navigationController.navigationBar.frame = frame;
这行得通吗?状态栏总是20高吗?我试过读取状态栏的高度,但它返回 0...