苦於設計師老喜歡在一個app里設置兩種不同顏色的vc 風格.
navigationBar的顏色還能通過把navigationBar的背景設置為透明再在vc中搭顏色
但navigationBar中的按鈕,標題等 都無法很好地獨立控制
除非把navigationBar加在vc中,讓vc完全獨立控制
這又失去了iOS 過渡動畫的一些特性,看着不爽
比較理想的是微信的效果,能在push/pop動畫中漸變修改不同狀態下的顏色來達到不同風格效果
效果如下
注意看那個返回按鈕的箭頭顏色
於是...
需每個vc獨立控制當前顯示navigationBar的顏色配置,可在每個viewWillAppear中使用
[self.transitionCoordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) { self.navigationController.navigationBar.tintColor = [UIColor blueColor]; //控制按鈕顏色 self.navigationController.navigationBar.barTintColor = [UIColor orangeColor]; //控制導航欄背景色 按需設置 } completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) { }];