Ios 模态UINavigationController条高度错误
注意:这与iOS 13中使用的新默认模式演示样式无关 我遇到了一个奇怪的问题,显示模式Ios 模态UINavigationController条高度错误,ios,swift,ios13,Ios,Swift,Ios13,注意:这与iOS 13中使用的新默认模式演示样式无关 我遇到了一个奇怪的问题,显示模式UINavigationController 考虑UIViewController中的UINavigationController: 当此代码在iOS 13.0上运行时: @IBAction func btntap(_ sender: Any) { let errorViewController = UIViewController() errorViewController.view.ba
UINavigationController
考虑UIViewController
中的UINavigationController
:
当此代码在iOS 13.0上运行时:
@IBAction func btntap(_ sender: Any) {
let errorViewController = UIViewController()
errorViewController.view.backgroundColor = .blue
errorViewController.title = "Erro na solicitação"
let errorNavigation = UINavigationController()
errorNavigation.navigationBar.barTintColor = UIColor(red: 204/255, green: 0/255, blue: 0/255, alpha: 1.0)
errorNavigation.navigationBar.tintColor = UIColor.white
errorNavigation.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]
errorNavigation.setViewControllers([errorViewController], animated: false)
errorNavigation.modalPresentationStyle = .automatic
self.present(errorNavigation, animated: true, completion: nil)
}
发生这种情况:
第一次显示模式屏幕时,请注意错误的高度:
我想继续使用卡片式的演示文稿,但我需要在第一份演示文稿上解决这个错误的高度问题
当满足以下要求时,会发生这种情况:
UIViewController
位于UINavigationController
UIViewController
标题上有特殊字符(“ç”、“ã”等)layoutifneed()
的一些变体,但均无效
我如何在第一个礼物上以正确的高度呈现它?只需将viewcontroller的标题替换为您自己的标签,就像这样。这是一个黑客解决方案,但始终有效,您将永远不必再考虑它。事实上,我从未调用ViewController的title属性,我只使用标签并将其设置为titleView,以便控制行数、字幕、对齐方式等
let errorViewController = UIViewController()
errorViewController.view.backgroundColor = .blue
let errorNavigation = UINavigationController()
let label = UILabel()
label.text = "Erro na solicitação"
label.textColor = .white
errorViewController.navigationItem.titleView = label
errorNavigation.navigationBar.barTintColor = UIColor(red: 204/255, green: 0/255, blue: 0/255, alpha: 1.0)
errorNavigation.navigationBar.tintColor = UIColor.white
errorNavigation.setViewControllers([errorViewController], animated: false)
errorNavigation.modalPresentationStyle = .automatic
self.present(errorNavigation, animated: true, completion: nil)
哦,是的,请注意,字体大小应该在17-18左右,从中到粗体,以匹配ios默认系统中的viewController标题值。如果您希望匹配ios系统默认值,请参见抱歉,我搜索了很多,没有发现任何类似问题。问题在于第一个演示文稿上的导航栏高度,而不是演示文稿表单。如果标题有误导性,你能推荐一个更好的标题,这样我就可以编辑这个问题了吗?这可能没什么帮助,只能将
let errorNavigation=UINavigationController()
更改为let errorNavigation=UINavigationController(rootViewController:errorViewController)
并删除该行errorNavigation.setViewControllers([errorViewController],动画:false)
。不,同样的问题,但感谢您的尝试。您是否可以尝试从self.navigationController
演示,而不仅仅是self
?我以前在从子控制器演示时看到过问题。这感觉有点麻烦,但解决了问题。我将使用它。非常感谢!