Search code examples
iosxamarin.iosbackground-imagenavigationbarsetbackground

How remove background image from UINavigationBar


I set UINavigationBar background image at root view controller, but i need to remove background image at detail view controller.

With Obj-C I use this code:

if ([[UINavigationBar class] respondsToSelector:@selector(appearance)])  
{
    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
}

so when i use this code in MonoTouch:

this.NavigationController.NavigationBar.SetBackgroundImage(null, UIBarMetrics.Default);

i receive this error:

System.ArgumentNullExeption  
Argument cannot be null  
Parameter name: backgroundImage  

How can I remove the background image?


Solution

  • This looks like a bug. AFAICT null should be allowed in this method to remove the background.

    I'll be fixing this asap for the next stable release of MonoTouch. If this is blocking you just fill a bug report at http://bugzilla.xamarin.com and we'll provide you an hotfix to workaround this.

    EDIT: this is fixed and will be available in the next releases (e.g. 5.2.12 for stable)