Где вызвать setBackgroundImage: forBarMetrics: на панели навигации в приложении с раскадровкой?

#ios #uinavigationbar #storyboard

#iOS #панель uinavigationbar #раскадровка

Вопрос:

У меня есть приложение на основе раскадровки с контроллером навигации в качестве начального контроллера представления.

Я хотел бы установить фон для панели навигации на изображение, используя метод setBackgroundImage:forBarMetrics:, но я не уверен, где его вызывать.

Я мог бы подкласс UINavigationController и использовать метод viewDidLoad для его вызова, но подкласс UINavigationController не рекомендуется. Я думаю, мне следует подкласс UINavigationBar и переопределить некоторый метод инициализации?

Спасибо,

Стив

Ответ №1:

Я сам с этим разобрался. Я хотел, чтобы все панели навигации по всему приложению имели пользовательский фон, поэтому самый простой способ сделать это — использовать прокси-сервер внешнего вида для панели навигации:

 [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"title_bar.png"]
  

Это установит фоновое изображение всех панелей навигации как «title_bar.png».

Казалось бы, хорошее место для такой настройки находится в:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  

в делегате вашего приложения.