2010-06-08 65 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... 
} 

小心壳体的,因为没有错误或警告将被记录如果你输错了方法。