2013-09-28 6 views
0

Я пытался изменить название моей вкладки со следующим кодом,Изменение названия в 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

ответ

0

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

- (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; 
} 
2

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

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

Привет, сожалею о позднем подтверждении, это сработало, но оно также изменило заголовок заголовка? –

2

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

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.

+0

Здравствуйте, извините, что в конце ответа. Кажется, это не работало? –

0

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

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

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

-(void)awakeFromNib 
{ 
    self.title = @"City Search"; 
    [self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"citySearch_selected"]withFinishedUnselectedImage:[UIImage imageNamed:@"citySearch_unselected"]]; 
} 
Смежные вопросы