我想向我的iOS6用户显示一个故事板,并向iOS7用户显示另一个故事板。我怎样才能做到这一点?Xcode检测iOS版本并相应地显示故事板
回答
您可以使用此代码获取iOS版本:
[[UIDevice currentDevice] systemVersion]
例如,要检测的iOS 6,你可以这样做:
if ([[UIDevice currentDevice].systemVersion hasPrefix:@"6"]) {
// ...
}
然后,加载的iOS不同的故事板6和7,你会做这样的事情:
if ([[UIDevice currentDevice].systemVersion hasPrefix:@"6"]) {
myStoryboard = [UIStoryboard storyboardWithName:@"Storyboard_6" bundle:nil];
} else {
myStoryboard = [UIStoryboard storyboardWithName:@"Storyboard_7" bundle:nil];
}
编辑:正如在其他答案中指出的,检测iOS版本的一种更好的方法是使用NSFoundationVersionNumber,因为不需要字符串解析systemVersion。
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
myStoryboard = [UIStoryboard storyboardWithName:@"Storyboard_6" bundle:nil];
} else {
myStoryboard = [UIStoryboard storyboardWithName:@"Storyboard_7" bundle:nil];
}
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
//load and show ios6 storyboard
}
else {
//load and show ios7 storyboard
}
您可以尝试在AppDelegate中(非常重要)是这样的
UIStoryboard *storyboard = nil;
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
storyboard = [UIStoryboard storyboardWithName:@"iOS7_AND_ABOVE" bundle:[NSBundle mainBundle]];
} else {
storyboard = [UIStoryboard storyboardWithName:@"iOS_below_7" bundle:[NSBundle mainBundle]];
}
Xcode似乎不知道NSFoundationVersionNumber_iOS_6_1是什么,它只知道5_1。这是怎么回事? –
@Chase Robers使用iOS SDK 7 NSFoundationVersionNumber_iOS_6_1仅在IOS 7 SDK上定义 – DarthMike
我的苹果机太老了让我升级操作系统到xcode更新所需的最低版本,所以我只是运气不好... –
- 1. iOS故事板本地化
- 2. Xcode 5 - 故事板本地化
- 3. XCode 9故事板显示不正确
- 4. XCode 4.2版本检查员隐藏故事板
- 5. XCode 7.3故事板保持显示加载修订版
- 6. presentViewController与故事板显示黑色视图iOS 7.1 xcode 5.1
- 7. 故事板未显示选项卡Xcode iOS
- 8. InputAccessoryView不显示 - 斯威夫特3 Xcode 8.3测试版(非故事板)
- 9. 如何本地化iOS故事板
- 10. iOS 6和故事板本地化
- 11. Xcode故事板
- 12. AVCam到故事板 - 相机不显示
- 13. Xcode故事板在添加语言本地化后无响应
- 14. 另一个故事板是为Xcode中的故事板本地化创建的
- 15. Xcode 5与iOS 5问题故事板
- 16. Facebook iOS sdk xcode 4.3 /故事板
- 17. xcode 4.2 iOS桌面使用故事板
- 18. iOS Xcode Autolayout不填充故事板
- 19. iOS故事板
- 20. Xcode iPad故事板
- 21. Xcode 6:故事板
- 22. Xcode不显示最新版本的iOS?
- 23. Ios应用程序:本地化和故事板
- 24. iOS版:的NSURLRequest不同的故事板
- 25. iOS版:双的UITableViewController用故事板
- 26. 检测iOS版本
- 27. iPad显示iPhone故事板
- 28. iOS - 故事板 - 本地化 - 修改故事板后,如何同步到其他语言故事板?
- 29. 检测重定向并相应地显示网站
- 30. 如何根据Settings.bundle选择检测本地化(故事板应用程序)
不能正常在iOS 6.1.3,因为6.1.3版本的iOS它的浮点值的工作是993.0和NSFoundationVersionNumber_iOS_6_1对于6.1.3版本来说是992.0 som,你将使WRONG假设它是iOS 7或更高版本 –
@NikolayShubenkov - 我从iOS7转换指南中获取了这些代码。 (https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/SupportingEarlieriOS.html#//apple_ref/doc/uid/TP40013174-CH14-SW1 –
@NikolayShubenkov-有趣的是,我明白了。 .. #define NSFoundationVersionNumber_iOS_6_0 993.00 #define NSFoundationVersionNumber_iOS_6_1 993.00在NSObjCRuntime.h –