【发布时间】:2020-10-29 04:07:01
【问题描述】:
iOS 导航栏中的 titleView 出现问题。我为titleView创建了一个自定义视图,但是每次我推送另一个控制器时,当我回到第一个视图控制器时,titleView会立即出现和消失。这是我的代码。
override func viewDidLoad() {
super.viewDidLoad()
let logo = UIImage(named: "img_appbar_logo")?.withRenderingMode(UIImageRenderingMode.alwaysTemplate)
logoContainer = UIView(frame: CGRect(x: 0, y: 0, width: 180, height: 40))
logoContainer.backgroundColor = UIColor.clear
animatedLogo = UIImageView(frame: CGRect(x: 0, y: 0, width: logoContainer.frame.width, height: logoContainer.frame.height))
animatedLogo.contentMode = .scaleAspectFit
animatedLogo.clipsToBounds = true
animatedLogo.image = logo
logoContainer.addSubview(animatedLogo)
navigationItem.titleView = logoContainer
}
【问题讨论】:
-
您是否检查了您正在推送的新控制器的导航项?我的意思是,如果新控制器不应该有,请尝试将其设置为 nil 或将项目的背景颜色设置为清除。新控制器的这个导航项是否已经出现?
-
是的,实际上,我也尝试在 viewDidLoad 甚至 viewWillAppear 上的新控制器上应用徽标,不幸的是,错误仍然存在。
-
我建议覆盖
navigationItem属性,见developer.apple.com/documentation/uikit/uiviewcontroller/… -
你能分享一个屏幕截图或一个 gif 格式的视觉资料,以便更好地理解这个问题@vidalbenjoe
标签: ios swift iphone uinavigationbar