2012-05-24 28 views
0

我在iOS 5中使用UIAppearance来创建自定义UINavigationBar。我用下面的代码(内AppDelegate.m)给所有的导航筋条相同的背景iOS 5 - 1自定义UINavigationBar不同于其他所有其他

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

我希望能够用1个导航栏“NavBarWithText.png”只有1 TableViewController,而我使用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]; 
} 

对于所有的其它视图。

回答

0

您可以使用此appearanceWhenContainedIn:显示不同的导航栏在UITableViewController显示时的详细信息,请参阅here

+0

好吧,我试过appearanceWhenContained的,但我仍然只看到“NavBarNoText.png”难道我把appearanceWhenContained在代码中在AppDelegate.m中自定义外观方法,还是应该把它放在TableViewController.m中? – mhbdr

+0

把它放在appDelegate.m,它会正常工作,我认为 –

+0

你必须给你的TableViewController类的类名 –

相关问题