刚开始使用iPhone开发。
我不确定为什么这段代码有效。我创建了一个新的UI控制器,然后将它的详细信息添加到应用程序委托* .h文件和* .m文件中,然后将其连接到IB中。当我运行它时,事情会起作用,所以我确实从我添加的控制器中看到了我的新视图......
但是我在应用程序委托中的didFinishLaunchingWithOptions方法中看到我从未真正创建过我的控制器? (即分配它/创建对象)。
为什么事情确实有效?
(A)* .m
#import "windowsBasedAppDelegate.h"
#import "gregsController.h"
@implementation windowsBasedAppDelegate
@synthesize window;
@synthesize viewController;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
return YES;
}
(B)* .h
#import <UIKit/UIKit.h>
@class gregsController;
@interface windowsBasedAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
gregsController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet gregsController *viewController;
@end
感谢
答案 0 :(得分:1)
如果您在界面构建器中创建了一个对象并连接了插座,那么nib文件实际上是使用initWithCoder为您实例化对象: