0

iPhoneの開発を始めたばかりです。

このコードが機能する理由がわかりません。新しい UI コントローラーを作成し、その詳細をアプリケーション デリゲート *.h ファイルと *.m ファイルに追加し、IB に接続しました。実行するとうまくいくので、追加したコントローラーから新しいビューが実際に表示されます...

ただし、アプリケーション デリゲートの didFinishLaunchingWithOptions メソッドで、実際にコントローラーを作成したことがないことがわかります。(つまり、割り当てた/オブジェクトを作成しました)。

物事が実際に機能するのはなぜですか?

(午前

#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

ありがとう

4

1 に答える 1

1

インターフェイス ビルダーでオブジェクトを作成し、アウトレットを接続した場合、initWithCoder を使用して、nib ファイルが実際にオブジェクトをインスタンス化します。

于 2011-02-20T23:58:55.663 に答える