以编程方式创建ViewController和awakeFromNiB?

时间:2010-06-08 17:45:07

标签: iphone objective-c cocoa-touch

我正在以编程方式创建一个viewController(希望是正确的方法)我的问题是我之前在IB中创建了控制器并且我想要在awakeFromNib中调用代码。因为我目前有事情viewDidLoad工作正常,但awakeFromNib没有。反正有没有让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 个答案:

答案 0 :(得分:1)

要调用,awakeFromNib方法必须是无参数(无发件人):

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

请注意外壳,因为如果您输错方法,则不会记录任何错误或警告。