首页 > 解决方案 > 当viewcontroller设置tableview时NavigationBar重新设计

问题描述

当我为只有一个 TableView 的特定 ViewController 推送 segue 时,导航栏会产生奇怪的效果,例如重新设计全部(下面的 GIF)。这就是在我的自定义导航控制器 viewDidLoad 方法中设置导航栏的方式。

let appearance = UINavigationBarAppearance()
appearance.accessibilityFrame = CGRect(x: 0, y: 0, width:     
UIApplication.shared.windows.first?.frame.size.width ?? 500, height: 100)
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = .primaryColor
appearance.titleTextAttributes = [.foregroundColor: UIColor.white]
appearance.largeTitleTextAttributes = [.foregroundColor: UIColor.white]
navigationItem.standardAppearance = appearance
navigationItem.scrollEdgeAppearance = appearance
navigationItem.compactAppearance = appearance
self.navigationBar.prefersLargeTitles = true
self.navigationBar.clipsToBounds = true
self.navigationBar.addSubview(imageView!)
imageView?.topAnchor.constraint(equalTo: navigationBar.topAnchor, constant: 10).isActive = true
imageView?.bottomAnchor.constraint(equalTo: navigationBar.bottomAnchor, constant: -10).isActive = true
imageView?.centerXAnchor.constraint(equalTo: navigationBar.centerXAnchor).isActive = true
imageView?.widthAnchor.constraint(equalTo: navigationBar.widthAnchor, multiplier: 0.75).isActive = true

任何想法?

在此处输入图像描述

标签: iosswiftuitableviewuinavigationcontrolleruinavigationbar

解决方案


推荐阅读