2011-08-09 29 views
0

我知道如何使一個navigationController的的導航欄隱藏:只隱藏一些UINavigationController的NavigationBar?

@implementation UINavigationBar (custom) 
    - (void)drawRect:(CGRect)rect {} 
@end 

然而,顯示的UIImagePickerController當它也適用於它。

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
picker.navigationBar.tintColor = [UIColor blackColor]; 
picker.navigationBar.barStyle = UIBarStyleBlackOpaque; // Or whatever style. 
[self presentModalViewController:picker animated:NO]; 

有沒有辦法讓一些navigationController的navigationBar透明?

謝謝。

回答

0

如果您需要-drawRect:對UINavigationBar的不同實例的行爲不同,您可以使用類似於objc_setAssociatedObject的內容來記錄它是否應該透明。然後在-drawRect:上,您可以使用objc_getAssociatedObjectself找出該做什麼。

+0

這將隱藏整個酒吧。我只是想讓背景透明(這是代碼的作用)... – iosfreak

+0

您可以在視圖控制器的「-viewDidAppear」或「-viewDidDisappear」方法中設置或清除此屬性。 –

+0

@ phpnerd211:好的,我更新了我的答案。 – jtbandes

相關問題