xcode4.2 (раскадровка, контроллер навигации) Как установить пользовательское изображение для UINavigationBar - PullRequest
4 голосов
/ 04 декабря 2011

Я создаю приложение для iPhone, используя раскадровку. Я понятия не имею, как установить пользовательское изображение для UINavigationBar.

Пожалуйста, научите меня, как это сделать. Ну, я не программист, а просто дизайнер.

Спасибо, что дали мне свой хороший код.

Я поместил код в мой " MainAppDelegate.m "

   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
    SelectClientNavController *controller = (SelectClientNavController *)navigationController.topViewController;
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"yourBackGroundImage.png"] forBarMetrics:UIBarMetricsDefault];
    controller.managedObjectContext = self.managedObjectContext;
    return YES;
}

Но я получил несколько ошибок, как показано ниже !!


Для этой строки:

SelectClientNavController *controller = (SelectClientNavController *)navigationController.topViewController;

1. Ожидаемое выражение

2. Использование необъявленного идентификатора 'SelectClientNavController'

3. Использование необъявленного идентификатора 'controller'


Для этой строки:

controller.managedObjectContext = self.managedObjectContext;

1. Свойство managedObjectContext не найдено для объекта типа MainAppDelegeate *

2. Использование необъявленного идентификатора 'controller'


Как исправить вышеуказанные ошибки.


1 Ответ

5 голосов
/ 04 декабря 2011

Мне нужно было сделать это тоже очень скоро, вот оно: Вы не можете сделать это в раскадровке. Код лучше всего находится в файле реализации делегата приложения (AppDelegate.m). , Найдите метод «- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions» и измените его следующим образом. Вы будете добавлять только одну строку кода.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; // this line is probably already there for you
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"yourBackGroundImage.png"] forBarMetrics:UIBarMetricsDefault]; //this adds the image
    return YES;
}

Где "yourBackGroundImage.png" - это ваше изображение. Убедитесь, что вы добавили изображение в свой проект.

Я считаю, что это будет работать только для IOS 5.

...