繁体   English   中英

如何在按钮点击时立即更改UINavigationBar图像?

[英]How to change UINavigationBar Image immediately on button click?

在我的iPhone应用程序中,我必须在按钮单击时更改UINavigationBar图像。

以下是我正在调用buttoclick的函数

-(void)btnBlueDelegate{


    // Create resizable images
    UIImage *gradientImage44 = [[UIImage imageNamed:@"header_Blue.png"]
                                resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    UIImage *gradientImage32 = [[UIImage imageNamed:@"header_Blue.png"]
                                resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

    // Set the background image for *all* UINavigationBars
    [[UINavigationBar appearance] setBackgroundImage:gradientImage44
                                       forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setBackgroundImage:gradientImage32
                                       forBarMetrics:UIBarMetricsLandscapePhone];

    //[[UINavigationBar appearance]setBackgroundColor:[UIColor blueColor]];

    [self.view  setNeedsDisplay];

}

现在我的问题是当我转到另一个视图时导航栏更改生效。但是在按钮单击相同视图控制器后它不会立即更改。

我知道我的导航栏已经绘制的原因所以它无法更改按钮点击..所以任何人都可以告诉我如何更改我当前视图的导航栏甚至点击按钮后...

可能是我必须重新加载整个视图..但不知道我该怎么做。

提前致谢。

在您的UIButton Action方法上调用此方法:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @"header_Blue.png"] 
               forBarMetrics:UIBarMetricsDefault];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM