2011-12-28 21 views
6

Bir iOS 4 uygulaması geliştiriyorum ve başka projelerde kullanmak istediğim bazı sınıfları geliştirdim.Inherit UIViewController sınıfı ve XIB

Bu sınıflardan biri, MapViewController adı verilen bir UIViewController alt sınıftır. Bu sınıf, arayüz oluşturucuyla oluşturduğum bir XIB dosyasını kullanır.

Yeni bir sınıftan başka bir projede MapViewController kullanmanın yeni bir sınıftan üstün bir sınıf olarak kullanılıp kullanılmadığını merak ediyorum İlgili XIB'yi nasıl kullanabilirim?

MapViewController ve XIB'yi yeniden kullanmak istiyorum, ancak XIB dosyasıyla özel bir şey yapmam gerekip gerekmediğini bilmiyorum.

Bunu nasıl açıklayacağımı bilmiyorum. Daha fazla ayrıntıya ihtiyacınız varsa, lütfen bana bildirin.

GÜNCELLEME: Böyle MapViewController devralan yeni bir sınıf oluşturmak isteyen

: I aynı XIB'ye kullanmaya devam etmek istiyorsanız şimdi,

... 
@interface NewMapViewController : MapViewController { 

... 

Ve (bir MapViewController), ne yapmalıyım?

+0

: Eğer gibi NewMapViewContoller başlat NewMapViewController

NewMapViewController.m

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { NSLog(@"Subclass initWithNibName called"); self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } 

için başlatıcı kullanırsanız Bence gayet basit görünüyor senin MapViewController ve onun XIB kullanmak mümkün, ancak bazı özel davranışa ihtiyacınız varsa XIB kullanmak istemiyorsunuz? – Peres

+0

Tam olarak sorunun ne olduğu açık değil. – Max

+1

Üzgünüm. Sorumu daha yeni detaylarla güncelledim. – VansFannel

cevap

6

MapViewController'dan miras alacağınız için, MapViewController ürününüz süper sınıf olur. Ve ayrıca MapViewController.xib var. Olmak istediğin, beni anlamaya çalışalım

//Nib of super class is MapViewController 
NewMapViewController *nmapController = [[NewMapViewController alloc] initWithNibName:@"MapViewController" bundle:[NSBundle mainBundle]]; 
+0

Hayır öyle değil. Denedim. Aslında, initWithNibName hiçbir zaman çağrılmaz. –

+0

@JimThio Cevabımı düzenledim. Bunu test ettim ve benim için çalışıyor. Deneyin ve bana bildirin. – MadhavanRP

+0

iOS 9.2'de benim için çalıştı, teşekkürler! – webo80

İlgili konular