Не могу установить фоновое изображение для UINavigationController - PullRequest
1 голос
/ 22 февраля 2012

Я добавил изображение в свой проект. Странно, но в файловой системе он находится в корневом каталоге приложения, а в проводнике проекта в XCode я поместил его в /Images/navbar-bg.png. Как сделать это согласованным?

Кстати, я хочу добавить его в качестве фонового изображения в свой UINavigationController. Это код, но я не вижу изменений по сравнению с синим фоном по умолчанию:

// navigation
navigationController = [[UINavigationController alloc] initWithRootViewController:cardListViewController];
// ps hue: 37, 53, -5
navigationController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"navbar-bg" ofType:@"png"]]];

self.window.rootViewController = navigationController;

Я также пробовал UIImage imageNamed безрезультатно. Я хочу сделать это программно, и я не использую здесь xib.

Спасибо

Ответы [ 3 ]

1 голос
/ 22 февраля 2012

Эти желтые значки папок, которые вы видите в проводнике проектов XCode, на самом деле не представляют папки;они groups.Конечно, вы можете переместить файл из подпапки «Изображения», чтобы сделать его согласованным, но я полагаю, что вы хотите сделать обратное.

Чтобы добавить элементы в ваш проект и сохранить их имя в исходной папке, вы должны создать «ссылки на папки».В диалоговом окне «Добавить файлы ...» выберите переключатель «Создать ссылки на папки для любых добавленных папок».Вы получите синий значок папки вместо желтого;все элементы в этой папке будут добавлены в ваш проект, и каждый раз, когда вы изменяете содержимое этой папки, встроенный исполняемый файл будет соответствовать его содержимому.

... и вы задали второй вопрос ...

В iOS 5, чтобы добавить изображение на панель навигации, используйте UINavigationBar:setBackgroundImage.

0 голосов
/ 14 июня 2013

Попробуй это, Напишите этот код в вашем методе viewDidload. Вот и все

UINavigationBar *navigationBar = self.navigationController.navigationBar;
UIImage *image = [UIImage imageNamed: @"NavBar-Wood.png"];
[navigationBar setBackgroundImage:image forBarMetrics: UIBarMetricsDefault];
self.navigationController.navigationBar.tintColor = [UIColor brownColor];

Спасибо.

0 голосов
/ 22 февраля 2012

Если это цвет фона контроллера навигации, то любой контроллер, отображаемый в контроллере навигации, будет отображаться поверх него.Это означает, что он никогда не будет виден.То, что вы видите, это cardlistcontroller, вместо этого вам нужно будет установить фоновое изображение на этом контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...