アプリの新しいバージョンは iOS 5.0 以降に依存しています。ただし、私の古いバージョンでは iOS 4 が許可されていました。私の記憶が正しければ、一部のユーザーのサポートが削除された場合、Apple はアプリを拒否するでしょう。iOS 5.0+ 以外のデバイスに、 という別の XIB をロードさせようとしていますoldVersion
。これが私が試したことです:
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version < 5.0) {
UIViewController *olderVersion = [[[ViewController alloc] initWithNibName:@"oldVersion" bundle:nil] autorelease];
self.window.rootViewController = olderVersion;
[self.window makeKeyAndVisible];
} else {
//Load normally.
}
(これはアプリのデリゲートにあります- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
)
また、新しいバージョンをロードしようとしましたが、
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version < 5.0) {
oldVersion *screen = [[oldVersion alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:screen animated:NO];
[screen release];
return;
} else {
//Normal stuff...
}
私の中でviewDidLoad
。どちらも正しく動作しません。最初のもの (アプリ デリゲート内) は画面を読み込みますが、コードには何も読み込みません (NSLog() や UIAlertView など)。2 つ目 (viewDidLoad) は画面に表示されず、コードで行ったカスタマイズを一切行わずに新しいバージョンをロードするだけです。
では、iOS 5.0 以降ではないデバイスを に送信するにはどうすればよいoldVersion
ですか?