更改导航栏外观

时间:2013-01-03 11:39:04

标签: objective-c ios uinavigationcontroller appearance

我的申请流程:AViewController -> BViewController -> CViewController(通过navigationController)。 AViewControllerCViewController看起来相同,只有BViewController看起来不同。

我是这样做的:

/// AppDelegate (should be 'super' settings)
[[UINavigationBar appearanceWhenContainedIn:[ABCNavigationController class], nil] setBackgroundImage:theImage forBarMetrics:UIBarMetricsDefault];

/// BViewController (should apply ONLY to BViewController)
[self.navigationController.navigationBar setBackgroundImage:BImage forBarMetrics:UIBarMetricsDefault];

问题在于CViewController我看到BViewController中加载的图片不在appDelegate中。如何将其恢复到appDelegate设置?

我应该强调backgroundImage是我设置的众多元素之一,在这里作为示例给出。

1 个答案:

答案 0 :(得分:0)

CViewController尝试将导航栏的背景图片设置为nil中的viewWillAppear,导致其BViewController设置的重新设置。

[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];