Restore navigationBar background image after setting it to [UIImage new]

后端 未结 3 1994
Happy的楠姐
Happy的楠姐 2021-02-01 05:04

I needed a completely transparent navigation bar for the mapView so I did this:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarM         


        
相关标签:
3条回答
  • 2021-02-01 05:48

    Set nil for image of navigation Controller on viewWillDisappear on map view

    Set this two method in your mapview

    MapView.m

    -(void)viewWillAppear:(BOOL)animated{
        [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
        [self.navigationController.navigationBar setShadowImage:[UIImage new]];
    }
    
    -(void)viewWillDisappear:(BOOL)animated{
        [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
        [self.navigationController.navigationBar setShadowImage:nil];
    }
    
    0 讨论(0)
  • 2021-02-01 05:50

    For Swift 3:

    override func viewWillAppear(_ animated: Bool) {
      super.viewWillAppear(animated)
    
      self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
      self.navigationController?.navigationBar.shadowImage = UIImage()
    }
    
    override func viewWillDisappear(_ animated: Bool) {
      super.viewWillDisappear(animated)
    
      self.navigationController?.navigationBar.setBackgroundImage(nil, for: UIBarMetrics.default)
      self.navigationController?.navigationBar.shadowImage = nil
    }
    
    0 讨论(0)
  • 2021-02-01 05:51

    by the way, you get get the original background image by using function

    UIImageView *imageView = [self.navigationController.navigationBar
    backgroundImageForBarMetrics:UIBarMetricsDefault];
    

    and store the image somewhere, then you use

    [self.navigationController.navigationBar setBackgroundImage:imageView 
    forBarMetrics:UIBarMetricsDefault];
    

    to set it back,but most time, set to nil will solve your problem.

    0 讨论(0)
提交回复
热议问题