Изменить заголовок в UITabBarController

Я пытался изменить заголовок моей вкладки с помощью следующего кода:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        self.title = @"City Search";
        self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1];
    }

    delegate = (AWSAppDelegate *)[[UIApplication sharedApplication] delegate];

    return self;
}

Это дает мне iOS собственный значок поиска и тест. но я хочу добавить свой заголовок, и я попытался сделать следующее:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        self.tabBarItem = [[UITabBarItem alloc] init]
        self.tabBarItem.image = myImage;
        self.tabBarItem.title = @"FooBar";
    }

    delegate = (AWSAppDelegate *)[[UIApplication sharedApplication] delegate];

    return self;
}

Однако это просто дает мне пустую вкладку без текста, все остальное работает нормально. не могли бы вы помочь? я использую iOS 6

4 ответа

Решение

Следующее действительно работает:) Однако я заметил, что если файл изображения не существует, это не будет работать...

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    delegate = (AWSAppDelegate *)[[UIApplication sharedApplication] delegate];

    if (self) {

        self.title = @"City Search";
        [self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"about_tap_icon.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"about_tap_icon.png"]];
        [self.tabBarItem setBadgeValue:@"about"];
        [self.tabBarItem setTitle:@"hello"];
    }

    return self;
}

Вот простое решение, ваше изображение должно быть черно-белым и в правильном размере 30х30

    self.title=NSLocalizedString(@"foobar", nil);
    self.tabBarItem.image=[UIImage imageNamed:@"image.png"];

Используйте следующий код:

myTabItemContainViewController *addVC = [[myTabItemContainViewController alloc] init]; /// initialize object of your viewController       
self.tabBarItem = [[UITabBarItem alloc] init]
self.tabBarItem.image = myImage;
self.tabBarItem.title = @"FooBar";
[addVC setTabBarItem: self.tabBarItem ];

Вам нужно добавить свой tabBarItem в ваш конкретный viewController.

UITabBarItem для этого UIViewController уже был бы создан и добавлен - поэтому нет необходимости выделять новый.

Просто измените текущий UITabBarItem.

Вы также можете установить выбранное изображение так:

-(void)awakeFromNib
{
    self.title = @"City Search";
    [self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"citySearch_selected"]withFinishedUnselectedImage:[UIImage imageNamed:@"citySearch_unselected"]];
}
Другие вопросы по тегам