0

Xcode 4.2 を使用して、私のアプリは iOS 5.0 シミュレーターで実行されます。iOS 4.2.1 を搭載した 3G iPhone で動作します。iOS 3.1.3 の iPod では動作しません。

これは、さまざまなチュートリアルから得たボイラープレート コードですが、iOS 3.1.3 デバイスでは、Default.png を表示した後、次の行が失敗します。

self.window.rootViewController = self.viewController;

ここで「インスタンスに送信された認識されないセレクター」を使用ykAppDelegate.m

#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;
}

コードをざっと見てみると、viewController が明らかにインスタンス化されていないことがわかります ( を除く@synthesize)。my で宣言されているだけ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 で動作するように、私ができる小さな調整はありますか?

4

2 に答える 2

1

iOS5 より前のオペレーティング システムでは、UIWindow に「rootViewController」という名前のプロパティがありません。慣用的な解決策は、View Controller のビューをサブビューとしてアプリケーションのキー ウィンドウに追加することです。

[window addSubview:self.myViewController.view];
于 2012-04-30T14:29:07.417 に答える
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;
}
于 2012-05-01T03:51:41.433 に答える