Как установить значок панели вкладок iPhone в код?
Я использую тот же ViewController для нескольких разных представлений.
При создании экземпляра ViewController для определенного вида есть ли простой способ указать значок панели вкладок через код?
Ответы
Ответ 1
yourViewController.tabBarItem = [[UITabBarItem alloc]
initWithTitle:NSLocalizedString(@"Name", @"Name")
image:[UIImage imageNamed:@"tab_ yourViewController.png"]
tag:3];
Элементы viewControllers добавляются на панель вкладок, поэтому изображение и имена должны быть установлены до того, как панель вкладок станет видимой (appDelegate, если они есть, например, в начале приложения). После этого вы можете использовать приведенный выше код, чтобы изменить значок и текст из loadView или viewDidAppear внутри этого viewController.
Ответ 2
Да. Ваш UITabBar
имеет свойство items
, которое представляет собой массив UITabBarItem
для каждого элемента панели табуляции. Вы можете создать UITabBarItem
с помощью конструктора –initWithTitle:image:tag:
для использования своего собственного изображения или конструктора –initWithTabBarSystemItem:tag:
для использования образа системы.
Ответ 3
Вы также можете сделать это в AppDelegate, объявив iVar UITabBarController и указав его на приложение tabBarController. Вы можете получить доступ к отдельным записям с помощью массива items
. и setTitle
.
@synthesize tabBarController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.tabBarController = (UITabBarController*)self.window.rootViewController;
NSArray* items = [self.tabBarController.tabBar items];
[[items objectAtIndex:0] setTitle:@"Home"];
[[items objectAtIndex:1] setTitle:@"Cool"];
[[items objectAtIndex:2] setTitle:@"Stuff"];
[[items objectAtIndex:3] setTitle:@"Settings"];
return YES;
}
Ответ 4
Правильный способ: добавить эту строку ниже в viewDidLoad
[self.tabBarItem setImage:[UIImage imageNamed:@"<Image Name>"]];
для просмотра контроллеров, установленных внутри UITabBarController