2016-04-05 28 views
4

Bir temel sınıfIOS Swift sınıflara ViewController dosya

MyViewController: UIViewController 

bazı çıkışları ile MyViewController.xib başlatılır sahiptir. Ben sadece, MyViewController için MyViewController.xib içinde MyViewController.swift (bütün UIViewController miras) hiçbir herhangi init yöntemleri Dosya Sahibi sınıfını belirledik ve aşağıdaki satırı beklendiği gibi çalışır:

let vc = MyViewController() 

görünüm özelliği, çıkışları ayarlanır ayarlandı.

SecondViewController: MyViewController 
{ 
    override init() 
    { 
     super.init() 
    } 

    required init?(coder aDecoder: NSCoder) 
    { 
     super.init(coder: aDecoder) 
    } 
} 

Şimdi MyViewController miras görünümü ve çıkışları ile görünüm denetleyicisi yaratacak o satırı

let vc = SecondViewController() 

bekliyoruz, ancak vc bütün çıkışları nil şunlardır:

Ben MyViewController alt sınıf istiyoruz. MyViewController.xib dosyası artık kaçırılmış gibi görünüyor. Neyi yanlış yapıyorum?

+0

https://stackoverflow.com/questions/27336730/subclassing-a-subclassed-uiviewcontroller-that-has-a-xib –

cevap

6

Xib dosyasını genişletemezsiniz. SecondViewController, kendi xib dosyasına ve kendi çıkışlarına sahip olmalıdır. Temel UI bileşenlerini, MyViewController taban sınıfında tanımlayabilirsiniz ve oluşturduğunuz her bir xib için, ui bileşenlerini doğrudan temel sınıfa bağlayın. Örneğin, tüm görünüm denetleyicilerinde ortak bir özel geri alma düğmeniz varsa, temel sınıftaki çıkış tanımını ekleyin ve her bir xib dosyası için UIButton ekleyin ve çıkışını temel sınıf olarak ayarlayın.

+1

Cevabınız için teşekkür ederiz. Bunu duymak zavallı. Bu alt sınıf sisteminin her bir alt sınıfta aynı ayarlarla yapılmadığına inanıyorum (aynı temel UI'ye sahip 100 alt sınıf, 100 aynı xib dosyası yapmak istemiyorum). Muhtemelen xib ile init aşçısı içinde anlamıyorum, ama şimdilik sadece tek bir iyi çözüm görüyorum - tüm temel kullanıcı arayüzünü MyViewController'da, xib'de değil. –

+2

Bu durumda, evet, temel UI kodunda el ile ortak UI maddeleri oluşturabilir VEYA farklı bir UIViewController için bağımsız bir xib dosyası oluşturabilir ve bunu bir alt görünüm olarak ekleyebilir ve ekleyebilirsiniz. –