7

Birkaç farklı forumda arama yaptım ve bunun için bir yanıt göremiyorum. Gezinme denetleyicisine bir bar düğmesi öğesi ekledim ve stilini UIBarButtonItemStyleDone'a ayarladım. Bu, gezinme yığınındaki ilk denetleyici olduğunda, düğme düzgün mavi renkte görünür. Bununla birlikte, denetleyici oluşturulduğunda ve yığının üzerine itildiğinde, stil göz ardı edilir ve siyah görünür.UIBarButtonItemStyleDone, denetleyiciye basıldığında gezinme çubuğunda mavi düğmeler oluşturmuyor

Bu sorun, tintColor değiştirildiğinde değiştirildiğini biliyorum, ancak standart UIBarStyleBlack kullanıyorum ve tintColor ayarlamıyorum. Ayrıca, tintColor ayarını sıfırlamaya çalıştım, ama bu da işe yaramıyor.

İlgili kod:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 
    self.navigationItem.rightBarButtonItem = 
    [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                target:self 
                action:@selector(createNew:)]; 
    self.navigationItem.rightBarButtonItem.style = UIBarButtonItemStyleDone; 
} 

herhangi bir fikir veya geçici çözümler büyük takdir.

cevap

10

style özelliğinin hiçbir şey yapmadığı bir ön ayarlı sistem öğesi kullanıyorsunuz. Gerçek olan UIBarButtonSystemItemDone sistem öğesine (mavi olan, ancak "Tamamlandı" yazıyor) veya -initWithImage:style:target:action: veya -initWithTitle:style:target:action:'u kullanmaya ve kendi resminizi veya metninizi sağlamaya geçmeniz gerekir.

+0

Düğme mavi olarak görünecektir, bu nedenle stil özelliği bir şey yapmalıdır, yalnızca tutarsız olarak mavi renkte görünür. – Cameron

+0

Yine de, trampalar haklı - Done sistem öğesini kullanın. – Bill

+0

Bunu yaparsanız: '[[UIBarButtonItem ayırma] initWithBarButtonSystemItem: UIBarButtonSystemItemDone target: self action: @selector (createNew :)];' çalışır. Tıpkı gramparks tarafından işaret edildiği gibi –