6

Uygulamamın tüm ekranlarından erişmem gereken ortak işlevlerim var: bir sağ çubuk düğme öğesi ve ilişkili eylem.UIViewController'ın özel bir alt sınıfından miras alan bir UITableViewController oluşturabilir miyim?

Kodu tekrarlamamak için, bunu özel bir UIViewController uygulamasında ayarlamak istiyorum ve tüm görünüm denetleyicilerinden devralmasını istiyorum.

- (void)viewDidLoad { 
    UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(lightsCamera)]; 
    self.navigationItem.rightBarButtonItem = rightBarButton; 
} 

- (void)lightsCamera { 
    … 
} 

Ancak, bununla birlikte UITableViewControllers bir dizi var ve onları çok işlevselliği devralmak için mümkün olup olmadığını bilmek istiyorum?

cevap

6

Kendi UITableViewController ürününü kendi özel UIViewController alt sınıftan yeniden oluşturmak oldukça kolay.

kontrolör,, düzgün yeniden boyutlandırma maskeleri ayarlamak tablonun temsilci ve veri kaynağı olarak kendini ayarlamak aynı zamanda view özelliğine ayarlanır bir UITableView özelliği var ve -viewDidAppear: yılında kaydırma göstergelerini flaş hatırlamak ve daha ettik gerekir ya da daha az var. Daha fazla here.

+0

Aradığım şeyi elde etmenin tek yolu bu mu? Eğer öyleyse ben UITableViewController' hendek ve önerdiğin gibi kendi yapmak. – prendio2

+1

Bir Kategoride yöntemleri geçersiz kılmak çok iyi bir fikir değildir, bu yüzden muhtemelen en iyi seçiminiz olacaktır. Alternatif olarak, sadece UITableViewController' alt sınıfını oluşturabilir ve işlevlerinizi oraya ekleyebilir ve özel masa denetleyicilerinizin geri kalanını bundan devralabilirsiniz. – jbrennan

+0

Tam olarak aradığım cevap budur :) Günümü sen yaptın! – sachadso

2

Görünüm denetleyicisine yeni özellikler eklemezseniz, UIViewController'daki bir kategorideki iki yöntemi uygulayabilirsiniz ve tüm alt sınıflar varsayılan olarak devralır.

+0

Görünüm veya denetleyicide bir kategori mi kastediyorsunuz? Görünüm denetleyicisinin 'navigationItem'üne kendi görünümünden erişebilir miyim? – prendio2

+0

Sanırım UIViewController demek istedi. Bu işlevin ait olduğu yer. UIView'i dahil etmeye gerek yok. – jlehr

+0

Evet, üzgünüm UIViewController. Ben düzenleyeceğim – TechZen

İlgili konular