現在、UIAppearance プロキシを使用して iOS アプリのナビゲーション バーの背景画像をカスタマイズしています。通知をトリガーする 2 つの異なるモードを切り替えるためのボタンがあります。この通知により、プロキシを再度使用して背景が別の画像に変更されます。私の問題は、この変更が別のコントローラーに移動して戻ってきたときにのみ表示されることです。コントローラー内のナビゲーション バーを強制的に更新できません。
MainTabBarController でこれを試しました:
- (void) onAppChangedMode: (NSNotification*)notif {
APP_MODE mode = (APP_MODE) [[notif object] integerValue];
// change navigation bar appearance
[[UILabel appearance] setHighlightedTextColor:[UIColor redColor]];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:(mode == 0 ? @"navbar.png" : @"navbar2.png")] forBarMetrics:UIBarMetricsDefault];
// trying to update
for (UIViewController* vc in self.viewControllers) {
[vc.navigationController.navigationBar setNeedsDisplay];
}
}
しかし、何も...動作していません。それを達成する方法はありますか?
ありがとう!