希望你也可以幫助這個... 我想通過添加自定義背景圖片來自定義我的導航欄。我發現了一個完美的但有點複雜的方法:NavigationSwizzle。在以前的項目中,我的工作沒有任何嚴重的問題,但現在我卡住...定製導航欄隱藏按鈕
從我的AppDelegate我打電話這種靜態方法:調用秒鐘後
@implementation SCAppUtils
+ (void)customizeNavigationController:(UINavigationController *)navController
{
//Customizing navigation BAR
UINavigationBar *navBar = [navController navigationBar];
[navBar setTintColor:kSCNavBarColor];
//Customizing TOOLBAR
[navController setToolbarHidden:NO animated:YES];
UIToolbar *toolBar = [navController toolbar];
UIImageView *imageView = (UIImageView *)[navBar viewWithTag:kSCNavBarImageTag];
UIImageView *imageView2 = (UIImageView *)[toolBar viewWithTag:kSCNavBarImageTag];
if (imageView == nil)
{
Utilities *utilities = [[Utilities alloc]init];
UIImage *img = [UIImage imageNamed:@"nav-bar-background.png"];
UIImage *img2 = [UIImage imageNamed:@"toolbar-background.png"];
imageView = [[UIImageView alloc] initWithImage:img];
imageView2 = [[UIImageView alloc] initWithImage:img2];
[imageView setTag:kSCNavBarImageTag];
[imageView2 setTag:kSCNavBarImageTag];
[navBar insertSubview:imageView atIndex:0];
[toolBar insertSubview:imageView2 atIndex:0];
[imageView release];
[imageView2 release];
[utilities release];
}
}
在rootNavigationController視圖控制器通過推動它在堆棧上我的右鍵,self.title,activityIndicator不顯示。如果我評論或設置atIndex:-1 in line [navBar insertSubview:imageView atIndex:0];然後按鈕顯示,但我的自定義背景消失,我得到常規的iPhone導航選項卡。
在didSelectRowAtIndexrootNavigationController的我:
//ADD BACK BUTTON TO VIEW
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Home" style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
//Home Button color
self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:166.0/255 green:179.0/255 blue:191.0/255 alpha:1.0];
//PUSH TO NEXT VIEW
[self.navigationController pushViewController:detailViewController animated:YES];
預先感謝您...
如果你需要更多的代碼或解釋,請不要猶豫,問我。 ..
最好的問候, 盧卡
編輯:
好的,我可以讓這個問題更簡單。我在導航欄中有一個自定義背景圖片。該圖像顯然是覆蓋我
self.navigationItem.title = @"TITLE";
如果我把阿爾法:ImageView的是在後臺的0.3我可以看到我的標題:
imageView = [[UIImageView alloc] initWithImage:image];
[imageView setAlpha:0.3];
[imageView setTag:kSCNavBarImageTag];
[navBar insertSubview:imageView atIndex:0];
所以,問題是我怎麼可以把我的navigationItem 。標題前面?它是UIView類的後代嗎?
編輯2: 真正奇怪的是,標題是可見的(上面的背景圖片)在rootController但另一個推的viewController冠軍後,進入後面TE背景ImageView的?!
您是否已經解決了此問題? – miya 2011-12-28 23:54:08