2015-04-07 54 views
0

我遇到以下問題。無法在UIViewController子類上設置標題

我創建了一個自定義視圖控制器,它具有我需要的一些有用的方法。

這是.H

@interface MYViewController : UIViewController 

- (void)method; 
- (void)otherMethod; 

@end 

代碼這是MYViewController類的我的init方法:

- (instancetype)init 
{ 
    self = [super init]; 

    return self; 
} 

然後,當我試圖擴展I類不能設置標題的孩子控制器。例如,在「MYOtherController.h」

@interface MYOtherViewController : MYViewController 

- (void)childControllerMethod; 

@end 

這是MYOtherViewController的初始化:

- (instancetype)init 
{ 
    self = [super init]; 

    return self; 
} 

然後,如果我實例化一個對象MYOtherViewController並嘗試設置標題,它偏偏不信邪。例如:

MYOtherViewController *controller = [[MYOtherViewController] alloc] init]; 
controller.title = @"Hello"; 

如果我把這個在MYOtherViewController類的viewDidLoad中它會將標題是零:

- (void)viewDidLoad { 
    NSLog(@"title: %@", self.title); 
    [super viewDidLoad]; 
} 

爲什麼不能設置在這個子類的稱號?

回答

0

viewcontroller的標題還沒有在alloc init之後做出,你需要在viewDidLoad(這是所有的UI元素已經初始化的時候)之後設置它,所以你可以做一個@property您在alloc init之後設置的視圖控制器,然後在viewDidLoad中,將標題設置爲@property的值