2013-09-26 3 views
-1

Im пытается изменить значок значка моих неизбранных изображений значков на вкладке. Я использовал код патча ниже, однако, сообщение, которое я нашел в этом патч-коде, говорит, чтобы запустить его в контроллере панели вкладок, но я не знал, как это сделать, поэтому я запустил его в методе - (void) viewDidLoad в файл .m-файла viewcontroller. Появилась ошибка: «Свойство« tabBar »не найдено на объекте типа« ViewController * »« Как это исправить?как запустить код в tabbarcontroller

// set color of selected icons and text to red 
self.tabBar.tintColor = [UIColor redColor]; 
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor redColor], NSForegroundColorAttributeName, nil] forState:UIControlStateSelected]; 


// set color of unselected text to green 
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor greenColor], NSForegroundColorAttributeName, nil] 
             forState:UIControlStateNormal]; 

// set selected and unselected icons 
UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0]; 

// this way, the icon gets rendered as it is (thus, it needs to be green in this example) 
item0.image = [[UIImage imageNamed:@"unselected-icon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

// this icon is used for selected tab and it will get tinted as defined in self.tabBar.tintColor 
item0.selectedImage = [UIImage imageNamed:@"selected-icon.png"]; 
+0

Где вы создаете 'UITabBarController'? В интерфейсе Builder? – derpoliuk

+0

Если вы использовали шаблон xcode, то tabbarcontroller находится в вашем appdelegate. – Hackmodford

+0

@StasDerpoliuk хорошо, я просто положил панель вкладок на мой главный контроллер представления, который появляется в раскадровке по умолчанию. должен ли я удалить этот контроллер представления и поставить uitabbarcontroller? – ian

ответ

0

Вы можете удалить UIViewController из раскадровки и добавить UITabBarController и установить его как Initial View Controller.

Тогда вы можете получить доступ к этой UITabBarController в AppDelegate.m, как это:

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;

Это быстрый способ.

Также вы можете подкласса UITabBarController, установить этот класс в раскадровку и поместить весь свой код внутри этого подкласса. (как было сказано null за 15 минут до:

1

Вместо того, чтобы использовать этот участок кода, попробуйте сделать ниже в вашем VC:

[self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"item_seleted.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"item_unselected.png"]]; 

Edit:

Код выше используется, когда подклассов UITabBarController, поэтому если вы INSIS вам нужно подклассифицировать «UITabBarController», изменить класс вашего tabBarController в раскадровке и поместить этот блок кода в свой viewDidLoad.

+0

Спасибо, но я пытаюсь изменить значок значка моих иконки, не выбранных – ian

+0

Хорошо, это сделает задание, оно изменит значок невыделенной вкладки, так как вы не можете изменить цвет оттенка, вы должны изменить значок на сделай это. – null

+0

говорится, что он был обесценен в ios7 – ian

Смежные вопросы