0

我在 iOS 5 中使用 UIAppearance 创建自定义 UINavigationBar。我使用以下代码(在 AppDelegate.m 中)为所有导航栏提供相同的背景

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavBarNoText.png"] forBarMetrics:UIBarMetricsDefault];

我希望能够仅对 1 个 TableViewController 使用 1 个导航栏“NavBarWithText.png”,而我使用 NavBarNoText.png 作为除上述 TableViewController 之外的所有其他导航栏的背景。有谁知道这是否可能?我知道 Instagram 做了类似的事情,主页选项卡使用的导航栏与所有其他选项卡不同。

我已经尝试在每个单独的类的 ViewDidLoad 方法中单独使用它,但它似乎不起作用。一开始我让单个视图具有不同的背景,但在我切换视图后它会变回公共背景。

-(void)viewDidLoad
{
[super viewDidLoad];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavBarWithText.png"] forBarMetrics:UIBarMetricsDefault];
}

对于单一视图

-(void)viewDidLoad
{
[super viewDidLoad];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavBarNoText.png"] forBarMetrics:UIBarMetricsDefault];
}

对于所有其他视图。

4

1 回答 1

0

您可以使用它appearanceWhenContainedIn:在显示时显示不同的导航栏以UITableViewController获取更多信息,请参见此处

于 2012-05-24T06:07:26.183 回答