iOS 5 - 1自定义UINavigationBar与其他所有人不同

时间:2012-05-24 04:28:52

标签: ios uinavigationbar uiappearance

我在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];
}

对于所有其他观点。

1 个答案:

答案 0 :(得分:0)

您可以使用此appearanceWhenContainedIn:UITableViewController中显示时显示不同的导航栏以获取更多信息,请参阅here