2010-06-08 63 views
1

我正在創建一個viewController以編程方式(希望是正確的方式)我的問題是,我以前在IB中創建了控制器,並有我想在awakeFromNib中調用的代碼。正如我目前有事情viewDidLoad工作正常,但awakeFromNib沒有。無論如何,要讓awakeFromNib打電話或者我可以使用替代方法嗎?以編程方式創建ViewController和awakeFromNiB?

@class MyViewController; 

@interface TEST_ControllerAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    MyViewController *viewController; 
} 
@property(nonatomic, retain) IBOutlet UIWindow *window; 
@end 

@implementation TEST_ControllerAppDelegate 
@synthesize window; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    viewController = [[MyViewController alloc] init]; 
    [window addSubview:[viewController view]]; 
    [window makeKeyAndVisible]; 
    return YES; 
} 


- (void)dealloc { 
    [viewController release]; 
    [window release]; 
    [super dealloc]; 
} 
@end 

EDIT_001:

我已經幾乎走到那使用的viewDidLoad將是我最好的選擇,特別是當我想要IBOutlet中初始化實例變量的結論。

歡呼加里

回答

1

爲了被調用,awakeFromNib方法必須是無參數的(無發送):

- (void)awakeFromNib { 
    // Do whatever is needed... 
} 

小心殼體的,因爲沒有錯誤或警告將被記錄如果你輸錯了方法。