0

アプリでストーリーボードを使用していますが、ストーリーボードには iOS 5 が必要です。

iOS 4 デバイスでアプリを開くとどうなりますか?

iOS 4 デバイスの viewDidLoad にコードを入れることはできますか?

iOS 4 用の特定のビューを作成したいのですが、「iOS 5 が必要」ということは可能ですか?

iOS 4 以前を実行しているデバイスを確認するために、次のようなものを使用できますか?:

BOOL iOS4 = [[[UIDevice currentDevice] systemVersion] floatValue] <= 5.0;

そして、私はこのようなものを入れることができviewDidLoadますか?

if(iOS4) {
    // i´m changing view to my "iOS 5 Required" view (XIB File)
}

iOS 4 デバイスを持っていませんが、これは機能しますか?

4

3 に答える 3

1

iOSのバージョンがストーリーボードをサポートしているかどうかを確認できます。

if(NSClassFromString(@"UIStoryboard")) {
    //iOS is supporting storyboards (iOS >= 5.0)

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];  

   //use your storyboard
}else{
    //iOS is not supporting storyboards
    //load viewcontrollers from nib
}

しかし、私はAppleがこのアイデアを好むとは思わない。彼らはそうすることであなたのアプリを拒否するかもしれません。ガイドラインにこれ​​を行わないように指示するセクションがあったとしても、私は驚かない。

于 2012-12-29T19:53:54.717 に答える
0

ストーリーボードが必要な場合、アプリはios4でインストールできません...
本当に必要な場合を除いて、これはアプリストアに表示されます

于 2012-12-29T18:51:11.960 に答える
0

OS のバージョンは、次を使用して取得できます。

[[UIDevice currentDevice] systemVersion]

ただし、デバイスまたは OS の機能を示すものとしてバージョン文字列に依存することは避ける必要があります。通常、特定の機能またはクラスが利用可能かどうかを確認する、より信頼できる方法があります。たとえば、NSClassFromString を使用して、現在のデバイスで UIPopoverController が利用可能かどうかを確認できます。

if(NSClassFromString(@"UIPopoverController")) {
    // Do something
}

CLLocationManager や UIDevice などの一部のクラスは、デバイスの機能をチェックするメソッドを提供します。

if([CLLocationManager headingAvailable]) {
    // Do something
}

Apple は GLSprite サンプル コードで systemVersion を使用しているため、私の推奨事項は絶対的なものではありません。

// A system version of 3.1 or greater is required to use CADisplayLink. The NSTimer
// class is used as fallback when it isn't available.
NSString *reqSysVer = @"3.1";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending)
    displayLinkSupported = TRUE;

currSysVer が reqSysVer よりも高くない場合は、else ステートメントを作成して、「iOS 5 が必要」という新しい modalViewController を自動的に提示します。

于 2012-12-29T19:44:37.873 に答える