iphone - 如何在每页的基础上更改导航栏的背景图像?

标签 iphone ipad uinavigationbar ios

我一直在寻找一种方法来更改我的 NavigationBar 的背景图像并在用户浏览应用程序时控制我的 NavigationBar 的外观。

我知道更改背景图片的公认方法是:

@implementation UINavigationBar (UINavigationBarCategory)

- (void)drawRect:(CGRect)rect {
     UIImage *image = [UIImage imageNamed: @"navbar.png"];
     [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

@end

但是,这会改变整个应用程序中 NavigationBar 的外观。当用户从一个 View 导航到下一个 View 时,如何更改 NavBar 的背景图像?

预先感谢您的帮助!

最佳答案

您需要在当前页面或当前要使用的适当图像的某处设置一些状态,可能在您的每个 viewWillAppear: 方法中。然后修改上面的 drawRect: 函数以引用该状态。

要重新绘制条形图,请在更新状态时调用 [myNavigationBar setNeedsDisplay]。这将导致调用 drawRect

关于iphone - 如何在每页的基础上更改导航栏的背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483921/

相关文章:

iphone - 自定义书签图标添加到 UISearchBar

iphone - 在另一个应用程序中打开文件

ios - 将 NSString 添加到 NSMutableArray 崩溃

ios - iPad 禁用我的应用程序上的默认多手势

ios - 在 UINavigationBar 中更改后退按钮文本的垂直位置

ios - iPhone NSXMLParser 解析字符串并存储在 NSNumber 变量和不同的数据类型中

iphone - 检测 uiscrollview 内 uiimageview 中的点击

ios - 导航栏中的按钮

java - 无法在 AlertDialog/LoginDialog 期间隐藏导航栏

iphone - 从 iPhone 到另一台设备(浏览器或 iPhone)的实时音频/视频流