2011-03-22 18 views
5

ChildView.xib'de özel bir UIView oluşturursam - bunu MainWindow.xib'den nasıl alabilirim?Bir XIB dosyasından XIB dosyalarına nasıl başvurulur XIB

Bir UIView'ı MainWindow.xib'e sürüklemeyi ve aynı ChildView sınıfı ile ilişkilendirmeyi denedim. ChildView.xib'in sahibini MainWindow.xib ve ChildView.xib'den ViewController yaptım, childView IBOutlet'i görünüme bağladım ancak uygulamayı başlattığımda ChildView.xib'deki görünüm otomatik olarak yüklenmiyor.

Bu mümkün mü? Temel düzeyde, UIViews'i ayrı XIB dosyalarından MainWindow.xib gibi başka bir XIB'de bir IBOutlet referansına nasıl bağlayacağımı soruyorum.

FWIW, kodu nasıl yapacağımı biliyorum (NSBundle ile manuel olarak başlatılıyor), ancak bu durumda, IB'de (Interface Builder) nasıl yapılacağını bilmek istiyorum.

cevap

2

Bunu biraz denedim ve ilişkili bir XIB dosyasına sahip bir NSViewController alt sınıfı oluşturdum. NSViewController nesnesinin bir örneğini ana XIB dosyasına koyarak bu otomatik olarak yüklenebilir ve "Nib name" değerini NSViewController alt sınıfının XIB dosyasının adına ayarlamak için Attributes denetçisini kullandı. Bu XIB dosyası, varsayılan olarak, IB'de özelleştirebileceğiniz veya özel bir görünüm alt sınıfı türüne ayarlayabileceğiniz tek bir görüntüleme nesnesini de içerir. Bununla birlikte, yine de, görüntü denetleyicinin görünümünü ana pencerenin içerik görünümüne eklemek için bir kod satırına ihtiyaç duyulmaktadır.

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    [[self.window contentView] addSubview:myVC.view]; 
} 

İleri deneyler özel bir NSViewController alt sınıfı olan gerekli olmadığını ortaya koydu (ı temsilci bunu), ama yine de NSViewController ait olması için yüklenen XIB dosyası gerekli.

Ana XIB'deki bir çıkışı, yüklenen XIB'deki görüntüleme nesnesine bağlamanın hiçbir yolunu görmedim. Bunun yerine, yalnızca görünüm denetleyicisi nesnesine bağlantı kurabilir ve özel görünümüne görünüm özelliği aracılığıyla erişebilirim.

+0

Teşekkürler Laura. Gösterdiğin gibi - bunu ViewControllers ile yaptım. UIViews'i diğer XIB'lere göndermenin açık olmadığı garip görünüyor. –

İlgili konular