2012-03-29 21 views
5
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    HeadViewController *headViewController = [[HeadViewController alloc] initWithNibName:@"HeadViewController" bundle:nil];  
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 120)]; 
    [view addSubview:headViewController.vew]; 
    [self.view addSubview:view]; 
} 

HeadViewController.h gösterilmez.UIView addSubview ve Subview

Ve ben headViewController.view göremiyorum.

cevap

15

Her şeyden önce HeadViewController sınıfındaki view çıkışını tanımlamanıza gerek yoktur. Otomatik olarak UIViewController süper sınıfından miras alınır.

Geçerli görünümünüze doğrudan HeadViewController görünümünü eklemenizi öneririm. Örneğin. Eğer ARC (Otomatik Referans Sayma) kullanıyorsanız

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    HeadViewController *headViewController = [[HeadViewController alloc] initWithNibName:@"HeadViewController" bundle:nil];  
    headViewController.view.frame = CGRectMake(0, 0, 320, 120); 
    [self.view addSubview:headViewController.view]; 
} 

Fakat, headViewController örneği muhtemelen viewDidLoad yöntemin sona erdikten sonra ayırmanın edilecektir. Bu örneği, görüntülemekte olduğunuz denetleyicideki yerel bir değişkene atamak kullanışlı (ve bunun zorunlu olduğunu söyleyebilirim). Böylelikle, eğer gerekliyse, daha sonra görüşünün bileşenlerini ele alabileceksiniz, örnek korunacak ve her şey mükemmel şekilde çalışacaktır. .m sınıf uygulaması dosyasının başında gizli arayüz tanımı

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    self.headViewController = [[HeadViewController alloc] initWithNibName:@"HeadViewController" bundle:nil];  
    headViewController.view.frame = CGRectMake(0, 0, 320, 120); 
    [self.view addSubview:headViewController.view]; 
} 

ve

@interface MyController() 
    @property (nonatomic, strong) HeadViewController *headViewController; 
@end 

: Sen böyle bir şey olmalı.

bir yazım hatası gibi görünüyor
+0

Seni düzeltirim: headviewController.view, alt görünüm olarak eklenmezse nildir. addsubview takas ve çerçeve – NeverBe

+0

ayarlamak gerekir ARC ile ilgili güncellemeyi kontrol edin. HeadViewController.view işlevi 'nil' ise, çift bağlantının nib dosyasındaki denetleyiciyle bağlantısını denetleyin. Bu yöntemin (çıkış sorunu) içinde veya bittikten sonra (ARC sorunu) '' nil' midir? – marzapower

+0

Kodu değiştirdiğiniz gibi değiştirdim ve varsayılan görünümü sildiğim için bir görünüm tanımladım. Ve hala headViewController.view yoktur ... kafam karıştı. – jxdwinter

0

- vatka olarak unutmuşum

[görünüşüdür addSubview: headViewController.vew];

+1

ile kontrolör sınıfı değil Bu doğru olabilir, ama op zaten bu sorunu uzun süre önce çözdü ... – greedybuddha

0

i sözdiziminde eksik

[görünüşüdür addSubview: headViewController.view];

+0

Cevap 2 yıl geri verildi. Şimdi amaç nedir? – YoungHobbit

+0

Sadece bunu gördüm – Bharath

İlgili konular