iOS8 – не отображает пользовательские изображения на вкладке

У меня есть ранее существующее приложение (pre iOS8), которое использует UITabbar с пользовательским изображением. Табба видна в iOS7-симуляторе и устройстве, но не отображается в iOS8. Что вызывает эту проблему? Я использую image и selectedImage свойства UITabBarItem с UIImageRenderingModeAlwaysOriginal изображений. Является ли проблема с симулятором XCode 6 или iOS (iPhone), или мы не можем использовать пользовательские изображения (только изображения с оттенками серого разрешены !?) на вкладке больше? ссылка для свойства изображения tabbaritem

  • IOS 7:

введите описание изображения здесь

  • iOS8:

введите описание изображения здесь

Предположим, у вас есть массив изображений в вашем проекте:

  NSArray *icons_low = [[NSArray alloc]init]; icons_low = [NSArray arrayWithObjects:@"first_tab_ic.png", @"second_tab_ic.png", @"third_tab_ic.png", @"4th_tab_ic.png", nil]; for(int i=0;i<icons_low.count;i++) { UITabBarItem *item = [self.tabBarController.tabBar.items objectAtIndex:i]; NSString *img_name = [NSString stringWithFormat:@"%@", [icons_low objectAtIndex:i] ]; /* deprecated -> comment such lines [item setFinishedSelectedImage:[UIImage imageNamed:img_name] withFinishedUnselectedImage: [UIImage imageNamed:img_name]]; */ item.image = [[UIImage imageNamed:img_name]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; item.selectedImage = [[UIImage imageNamed:img_name]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; } 

Но я также подозреваю, что на вашем вкладке (проверьте XIB) есть что-то, связанное с setBarStyle.

Проблема с моим подходом при инициализации элементов вкладки (в методе, когда логин завершается на самом экране входа в систему). У меня есть логика проверки входа в viewDidLoad экрана входа и segueing на главный экран, если пользователь вошел в систему. Но в viewWillAppear логина я возвращаю tabbarItems.

В pre iOS 8 экран входа в систему не отображается, и у меня есть инициализированная вкладка на главном экране. Но в iOS 8 он отображает экран входа (на время), даже если я перехожу на главный экран из viewDidLoad.

Чтобы решить проблему, я переместил код инициализации элементов вкладки на главный экран. введите описание изображения здесь

Вы можете использовать следующий код:

 UITabBarItem *maps = [[UITabBarItem alloc] initWithTitle:nil image:[[UIImage imageNamed:@"map_icon"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] tag:3]; [navMaps setTabBarItem:maps]; 
  • Сегодня Extension UIWebView
  • Передача обслуживания iOS с телефона на macbook safari / chrome
  • Кнопка «Отмена» ничего не делает в MFMailComposeViewController - iOS 8
  • Поддержка iPhone 6 и iPhone 6+ с различным изображением запуска / заставки для iPad Портрет и ориентация на ландшафт
  • iPod Touch с iOS8 обнаруживается как iPhone
  • Как включить собственное разрешение для приложений на iPhone 6 и 6 Plus?
  • Совместное использование расширения в бета-версии IOS8
  • Проблемы с Game Center отображаются вместо таблицы лидеров в приложении ios 8, используя быстрый
  • iOS8 Невозможно создать папку / файл в папке с общим контейнером группы приложений
  • MPMoviePlayerController - обнаружение нажатия кнопок Next / Prev
  • iOS9: оптимизация iPhone 5 для потери
  • Давайте будем гением компьютера.