2013-02-11 19 views
1

我在我的appdelegate中設置了自定義導航欄。你可以在這裏看到代碼。僅在一個視圖上更改導航欄

UIImage *image = [UIImage imageNamed:@"navbar.png"]; 
[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 

但是現在我正在使用eventkit框架。我想要的是,當我去事件細節,我得到標準的導航欄佈局。所以沒有圖像。

EKEventViewController *vc = [[EKEventViewController alloc] init]; 
[vc.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 
vc.event = [dataSource eventAtIndexPath:indexPath]; 
vc.allowsEditing = YES; 
[calendar.navigationController pushViewController:vc animated:YES]; 

我試過以下,但它不工作。 有什麼幫助嗎?

+0

幫助像你嘗試把[vc.navigationController.navigationBar了setBackgroundImage:無forBarMetrics:UIBarMetricsDefault]命令進入EKEventViewController類本身的viewWillAppear中? – cleverbit 2013-02-11 14:36:50

+0

您無法訪問此課程?這是eventKit框架內的一個類 – Steaphann 2013-02-11 14:38:50

+0

它是如何工作的?圖像沒有改變? – rdelmar 2013-02-11 16:49:25

回答

1

你可以做一件事,使用默認導航欄截取一個viewController的截圖,只裁剪導航欄區域,即製作320 x 44大小的圖像。當你想再次你默認的導航欄,那個時候用這個裁剪圖像導航欄的背景下,當你瀏覽到其他具有定製Navimage的viewController添加以下代碼

UIImage *image = [UIImage imageNamed:@"defaultNavbar.png"]; 
[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 

再次然後再繪製導航

通過自定義映像代碼,即

UIImage *image = [UIImage imageNamed:@"navbar.png"]; 
[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];