OStack程序员社区-中国程序员成长平台

标题: ios - 将导航栏的背景图像恢复为默认值 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 23:10
标题: ios - 将导航栏的背景图像恢复为默认值

首先,我将导航栏的背景设置为半透明。

    barImage=[[self.navigationController.navigationBar backgroundImageForBarMetrics:UIBarMetricsDefault] copy];//barImage is a UIImage point     
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                             forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = [UIImage new];

效果很好。 现在我需要将导航栏的背景图像恢复为默认值。

- (void)dealloc
{

    [self.navigationController.navigationBar setBackgroundImage:barImage
                                                  forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = nil;

}

这不起作用。我该怎么办?



Best Answer-推荐答案


不确定您是否仍然坚持这一点,但这里是反转效果的代码。我借了一个导航 Controller ,并将所有内容复制到原来的导航 Controller 中。

    UINavigationController *tempNavigationController = [[UINavigationController alloc]initWithRootViewController:[[UIViewController alloc]init]];
    [self.navigationController.navigationBar setBackgroundImage:[tempNavigationController.navigationBar backgroundImageForBarMetrics:UIBarMetricsDefault]
                                                  forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = [tempNavigationController.navigationBar shadowImage];
    self.navigationController.navigationBar.translucent = YES;
    self.navigationController.view.backgroundColor = tempNavigationController.view.backgroundColor;

    tempNavigationController = nil;

关于ios - 将导航栏的背景图像恢复为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24298375/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4