Search code examples
objective-cxcodeuinavigationbarios6.1

How to Set the custom background image for navigation bar of a specific view


I'm using this code in the app delegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  (NSDictionary *)launchOptions {
   // Rename "specialNavBar.png" to the file name of your specific navigation bar    background image.
    UIImage *special = [UIImage imageNamed:@"movBar.png"];

     // Rename "SpecialViewController" to the class name that you want to have a different navigation bar for.
    [[UINavigationBar appearanceWhenContainedIn:[MovableViewController class], nil] setBackgroundImage:special
                                                                                     forBarMetrics:UIBarMetricsDefault];

// Override point for customization after application launch.
return YES;

}

APP is crashing and giving me this error message:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MovableViewController 0xa17eb90> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key navBar.' * First throw call stack: (0x1d11012 0x11f3e7e 0x1d99fb1 0xc9fe41 0xc215f8 0xc210e7 0xc4bb58 0x355019 0x1207663 0x1d0c45a 0x353b1c 0x2187e7 0x218dc8 0x218ff8 0x219232 0x1683d5 0x16876f 0x168905 0x171917 0x13596c 0x13694b 0x147cb5 0x148beb 0x13a698 0x1f4adf9 0x1f4aad0 0x1c86bf5 0x1c86962 0x1cb7bb6 0x1cb6f44 0x1cb6e1b 0x13617a 0x137ffc 0x276d 0x2695) libc++abi.dylib: terminate called throwing an exception


Solution

  • You can add a custom image in navigation bar like this.

    _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UIImage *special = [UIImage imageNamed:@"movBar.png"];
    [_window.rootViewController.navigationController.navigationBar setBackgroundImage:special forBarMetrics:UIBarMetricsDefault];