ios - iOS 13 中 Controller 呈现模态时的 UINavigationBar 高度

标签 ios uitableview modalviewcontroller ios13

Controller 呈现以下代码:

let vc = UIViewController()
vc.view.backgroundColor = Colors.green
let nvc = UINavigationController(rootViewController: vc)
self.present(nvc, animated: true, completion: nil)

显示

original

但是导航栏高度很大。应该是这样的

shouldbe

如何像第二张图片那样设置导航栏高度?

最佳答案

来自the discussion in apple developer forum ,这似乎是iOS 13中的一个错误。
他们提供的解决方法如下:

override func viewWillAppear(_ animated: Bool) {  
    super.viewWillAppear(animated)  
    if #available(iOS 13.0, *) {  
        navigationController?.navigationBar.setNeedsLayout()  
    }
}

我已经在我的项目中对其进行了测试,它解决了问题。希望它也能解决您的问题。

关于ios - iOS 13 中 Controller 呈现模态时的 UINavigationBar 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58107039/

相关文章:

ios - UITableView trailingSwipeActionsConfigurationForRowAt 图片和标题

ios - 所有 View 上的页面 View Controller 按钮

objective-c - 在自定义单元格中维护 UITextViews 的值

ios - TableViewCell 未完全显示

ios - 可以不连续调用dismissModalViewController吗?

ios - 呈现 View Controller 后自动布局无效(以及许多情况)

iOS 7 Sprite Kit 释放内存

ios - 缓存对 NSFetchedResultsController 有什么影响

ios - Swift TableView 删除单元格不显示

ios - 在 iOS 13 全屏中呈现模式