title: Show transparent UINavigationbar will see black bar when swipe the viewController
body: <p>I have a <code>UINavigationController</code> with 3 viewControllers. We know the three viewControllers share a common navigationBar.If I want to set the <code>navigationBar</code> totally transparent. I can put the code in <code>viewWillAppear</code>:</p>
  
  <pre><code> [self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
   [self.navigationBar setShadowImage:[UIImage new]];
   [self.navigationBar setBarTintColor:[UIColor clearColor]];
    self.navigationBar.translucent = YES;
  </code></pre>
  
  <p>and set it back in <code>viewWillDisappear</code>:</p>
  
  <pre><code>[self setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
  [self setShadowImage:nil];
  [self setBarTintColor:THEME_COLOR];
  self.translucent = NO;
  </code></pre>
  
  <p>I want to set the <code>UINavigationBar</code> translucent only in viewControllerB, so I put the code in viewControllerB. However, when I popToViewController B, I can see a black bar in the top right of the screen. Since the <code>viewWillAppear</code> is invocated. It seems can not be solved in my case. </p>
  
  <p>I come out with some methods:</p>
  
  <ol>
  <li>use different <code>UINavigationBar</code>.</li>
  <li>use different <code>UINavigationController</code>. But <code>UINavigationController</code> can not push a new <code>UINavigationController</code></li>
  <li>Custom <code>UIView</code> like <code>UINavigationBar</code>.</li>
  </ol>
  
  <p>I think above methos is more complicated。</p>
  
  <p>Any ideas thanks!</p>