2010-11-22 14 views
6

değişen olması.sorun olmadan herhangi bir şans, ben preslenmiş bir kez UIBarButtonItem imajını değiştirmek için çeşitli yollar çalışıyorum bir UIBarButtonItem imajını

// bookmarkButton is a property linked up in IB 
-(IBAction)bookmarkButtonTapped:(id)sender 
{ 
NSLog(@"this action triggers"); 
// attempt 1 
UIBarButtonItem* aBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"bookmarkdelete.png"] style:UIBarButtonItemStylePlain target:self action:@selector(bookmarkButtonTapped:)]; 
bookmarkButton = aBarButtonItem; 
[aBarButtonItem release]; 

// attempt 2 
bookmarkButton.image = [UIImage imageNamed:@"bookmarkdelete.png"]; 
} 

bunu yapmanın başka bir yolu var mı? bookmarkButton bir UIButton

cevap

2

araç çubuğu bir dizi içerir deneyin.

NSMutableArray *items = [[NSMutableArray alloc] initWithArray:self.toolBar.items]; 
UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"newButton.png"] style:UIBarButtonItemStylePlain target:self action:@selector(buttonTapped:)]; 
[items replaceObjectAtIndex:0 withObject:newButton]; 
self.toolBar.items = items; 
[newButton release]; 
[items release]; 
0

mi? o (UIButton *)aBarButtonItem.customView yerine doğrudan yoluyla başvurulan mıdır?

bir UIButton o zaman devlete dayalı görüntüyü ayarlamak isteyeceksiniz ise: Bunun yerine o istemediğinizi de aynı API ile bir setBackgroundImage olduğunu - (void)setImage:(UIImage *)image forState:(UIControlState)state

Not. Kalemler - - Bir özellik olarak

+0

bookmarkButton bir UIBarButtonItem bir kurmak olduğunu çalışması gerekir: Yani bir IBOutlet özelliği olarak araç çubuğunu kurduktan sonra, böyle .. diziye yeni bir düğme eklemek zorunda ELVES. forState: – cannyboy

-3

[bookmarkButton setImage:[UIImage imageNamed:@"bookmarkdelete.png"] forState:UIControlStateNormal];

+0

Ben -setImage yanıt veremeyebilir bir hata 'UIBarButtonItem' get' Bunu denediğinizde. – cannyboy

+1

Bu kod UIBarButtonItem sınıfta yok – filou

0

Bu

UIImage *normalButtonImage = [UIImage imageNamed:@"TableViewIcon"]; 
UIImage *selectedButtonImage = [UIImage imageNamed:@"CollectionViewIcon"]; 
CGRect rightButtonFrame = CGRectMake(0, 0, normalButtonImage.size.width, 
            normalButtonImage.size.height); 
UIButton *rightButton = [[UIButton alloc] initWithFrame:rightButtonFrame]; 
[rightButton setBackgroundImage:normalButtonImage forState:UIControlStateNormal]; 
[rightButton setBackgroundImage:selectedButtonImage forState:UIControlStateSelected]; 
[rightButton addTarget:self action:@selector(toggleTableView:) 
     forControlEvents:UIControlEventTouchDown]; 
self.toggleMediaView = [[UIBarButtonItem alloc] initWithCustomView:rightButton]; 
[self.navigationItem setLeftBarButtonItem:self.toggleMediaView]; 
self.navigationItem.leftBarButtonItem.enabled = NO; 
İlgili konular