只隐藏一些UINavigationController的NavigationBar?

时间:2011-08-09 17:02:30

标签: iphone objective-c uinavigationcontroller

我知道如何隐藏navigationController的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透明?

感谢。

1 个答案:

答案 0 :(得分:0)

如果您需要-drawRect:对UINavigationBar的不同实例采取不同的行为,您可以使用类似objc_setAssociatedObject的内容来记录它是否应该透明的指示。然后在-drawRect:中,您可以objc_getAssociatedObject使用self来了解该怎么做。