我正在尝试使UINavigationBar
颜色过渡平滑。
我环顾四周,正在使用(this)方法。
在ChildViewController
我有下面提到的代码:
//Transition to transparent navbar
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UIView.animate(withDuration: 0.1) {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.barStyle = .black
self.navigationController?.navigationBar.layoutIfNeeded()
}
}
// Transition to default Navbar
override func willMove(toParentViewController parent: UIViewController?) {
self.navigationController?.navigationBar.barStyle = .default
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
self.navigationController?.navigationBar.shadowImage = nil
self.navigationController?.navigationBar.barTintColor = nil
}
从ChildViewController
到parent