2012-04-30 10 views
0

Xcode 4.2を使用して、私のアプリはiOS 5.0シミュレータで動作します。 iOS 4.2.1を搭載した3G iPhoneで動作します。 iOS 3.1.3を搭載したiPodで動作するではなく、です。iOS 3.1でViewControllerをインスタンス化する方法は? (これはすでにiOS 4.2.1で動作します)

これは私がチュートリアルの任意の数から得た定型コードですが、iOSの3.1.3デバイス上で、私のDefault.pngを表示した後、この行は失敗します。

self.window.rootViewController = self.viewController; 

インスタンスに送信された「認識できないセレクタで「私のここykAppDelegate.mに:コードをチラッと見よりも、私は気づくのViewControllerで

#import "ykAppDelegate.h" 
#import "ykViewController.h" 

@implementation ykAppDelegate 

@synthesize window; 
@synthesize viewController; 

#pragma mark - 
#pragma mark Application lifecycle 

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

    // Override point for customization after application launch. 

    // Set the view controller as the window's root view controller and display. 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

明らかに(@synthesizeを除く)インスタンス化されていません。それはちょうど私のykAppDelegate.hで宣言されています:

#import <UIKit/UIKit.h> 

@class ykViewController; 

@interface ykAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    ykViewController *viewController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet ykViewController *viewController; 

@end 

は、私は、これはiOSの3.1で動作することができます小さな微調整はありますか?

答えて

1

iOS5以前のオペレーティングシステムでは、UIWindowには「rootViewController」という名前のプロパティはありません。

[window addSubview:self.myViewController.view]; 
0

これは私

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

    // Override point for customization after application launch. 

    // Set the view controller as the window's root view controller and display. 
    [window addSubview:self.viewController.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 
のために働い:慣用的なソリューションは、単にアプリケーションのキーウインドウにサブビューとしてビューコントローラのビューを追加することです
関連する問題