iOS – Navigation Bar’a birden fazla buton eklemek

Merhaba Arkadaşlar,
Bildiğiniz üzere ios uygulamalarında navigation bar kullanımı oldukça yaygındır. Uygulamaların büyük bir kısmında view’lar arası geçişler veya farklı fonksiyonel özellikler için navigation bar üzerindeki butonlar kullanılır. Mobilhanem ekibi olarak şu an geliştirmekte olduğumuz uygulamada navigation bar üzerinde birden fazla buton ekleme ihtiyacımız oldu. Nasıl yapılacağı konusunda araştırma yaparken, storyboard üzerinden bir tane sağa, bir tane sola olmak üzere en fazla iki buton eklenebildiğini öğrendik. Birden fazla ekleyebilmek ancak dinamik olarak mümkün oluyor.

Bu paylaşımımızda navigation bar kullanımı ve navigation bar üzerine sağ veya sol tarafa birden fazla butonun nasıl ekleneceği konusunda bilgi vermeye çalışacağım.

Yeni bir proje açıyoruz ve main.storyboard üzerinden viewController’a navigation controller ekliyoruz:

nb1

 

Bu işlemi yaptıktan sonra view controller’a navigation bar eklemiş oluyoruz. Aşağıdaki resimde görüleceği üzere navigation bar’ın sol ve sağ tarafına birer tane bar button item ekliyoruz. Butonların isimlerini bar item->title’dan değiştirebiliriz.

nb2

 

Navigation bar’a iki buton ekledikten sonra üçüncü bir bar button item eklemeye çalıştığımızda xcode’un buna izin vermediğini görüyoruz. Böyle bir ihtiyaç durumunda navigation bar’a üçüncü bir buton ekleme işi storyboard kullanarak değil, dinamik olarak kod yazarak mümkün oluyor.

Navigation bar’a storyboard kullanarak biraz önce eklediğimiz butonlar kaldırıyoruz ve aşağıdakine benzer bir kod kullanarak dinamik olarak eklemeye çalışıyoruz:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //barButtonItem'lar olusturuluyor. @selector(...:) ile butonlara basildiginda calisacak methodların çalışacağı belirleniyor
    UIBarButtonItem *colorButton = [[UIBarButtonItem alloc] initWithTitle:@"Renk" style:UIBarButtonItemStyleDone target:self action:@selector(colorButtonAction:)];
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addButtonAction:)];
    UIBarButtonItem *fontButton = [[UIBarButtonItem alloc] initWithTitle:@"Font" style:UIBarButtonItemStyleDone target:self action:@selector(fontButtonAction:)];
    
    //barButtonItem'lar array'e aliniyor
    NSArray *barButtonsArray = [[NSArray alloc] initWithObjects: fontButton, addButton, colorButton, nil];
    
    //array'e alinan bar button item'lar navigation bar'ın sağ tarafına ekleniyor.
    self.navigationItem.rightBarButtonItems = barButtonsArray;
    
}

- (void)colorButtonAction:(id)sender{
    NSLog(@"Renk butonuna basildi");
}

- (void)fontButtonAction:(id)sender{
    NSLog(@"Font butonuna basildi");
}

- (void)addButtonAction:(id)sender{
    NSLog(@"Add butonuna basildi");
}

Bu kod ile navigation bar aşağıdaki gibi bir görünüm alıyor:

nb3

Kaynak kodu aşağıdaki linkten de indirebilirsiniz.

Mobilhanem.com’dan iOS paylaşımlarına devam ediyoruz. Bu paylaşımımızda navigation bar ve navigation bar’a buton ekleme konusunda bilgi vermek istedik. Sorularını ve önerileriniz için yorum kısmını kullanabilirsiniz. Birdahaki paylaşımlarımızda görüşmek üzere.

0

Aycan Ayhan

1 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?