Я хочу показать одну раскадровку своим пользователям iOS6 и другим пользователям iOS7. Как я могу это сделать?Xcode обнаруживает версию iOS и показывает раскадровку соответственно
ответ
Вы можете получить версию IOS, используя этот код:
[[UIDevice currentDevice] systemVersion]
Например, для обнаружения IOS 6, вы могли бы сделать что-то вроде:
if ([[UIDevice currentDevice].systemVersion hasPrefix:@"6"]) {
// ...
}
Затем, чтобы загрузить различные раскадровки для прошивки 6 и 7, вы могли бы сделать что-то вроде:
if ([[UIDevice currentDevice].systemVersion hasPrefix:@"6"]) {
myStoryboard = [UIStoryboard storyboardWithName:@"Storyboard_6" bundle:nil];
} else {
myStoryboard = [UIStoryboard storyboardWithName:@"Storyboard_7" bundle:nil];
}
EDIT:, как указано в других ответах, возможно, лучший способ обнаружить версию iOS - использовать NSFoundationVersionNumber, так как не требуется синтаксический анализ системы.
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
Мой mac слишком стар, чтобы позволить мне обновить ОС до минимальной версии, требуемой обновлением xcode, поэтому мне просто не повезло ... –
- 1. Xcode не показывает последнюю версию iOS?
- 2. xcode всегда показывает старую версию
- 3. Пользовательский контроль Xcode через раскадровку
- 4. IOS: кнопка не регистрируется, xcode не показывает код и раскадровку параллельно
- 5. Xcode не обнаруживает заголовки tesseract и opencv
- 6. Переделайте раскадровку в Xcode
- 7. iOS - обнаруживает, работает ли приложение с Xcode
- 8. Xcode изменяет немодифицированную раскадровку и XIB-файлы
- 9. Xcode не обнаруживает iPhone
- 10. Использовать раскадровку из зависимого проекта в XCode
- 11. Xcode 6 создает раскадровку предупреждения
- 12. Создайте раскадровку ios
- 13. Как XCode загружает основную раскадровку?
- 14. Xcode автоматически меняет раскадровку xml
- 15. Как увеличить раскадровку (xcode 6)
- 16. Xcode перейти с viewcontroller.swift на раскадровку
- 17. Как создать версию версии iOS в Xcode?
- 18. Xcode 6.1 не «обнаруживает» фреймворк
- 19. MKPolyLine, обнаруживает, что линии пересекаются и меняют цвет соответственно
- 20. jQuery обнаруживает текущий большой палец и прокрутку jCarousel соответственно
- 21. XCode не обнаруживает ошибку
- 22. Как nuget обнаруживает версию фрейма?
- 23. Bundler обнаруживает неправильную версию Ruby
- 24. Выберите подходящую версию iOS из списка симуляторов в XCode 6.0.1
- 25. Xcode не показывает NSLogs с устройств iOS
- 26. Xcode 6 не показывает iOS 7.1 симуляторы
- 27. кнопка IOS XCode Tuxedo показывает неверный класс
- 28. iOS - Xcode прекратил показывать версию iOS для симулятора
- 29. iPhone показывает старую версию приложения
- 30. XCode 6.3 Beta показывает iOS 8.3b как «неприемлемый»
не работает должным образом на прошивке 6.1.3, так как для 6.1.3 IOS версии его плавающим значения является 993,0 и NSFoundationVersionNumber_iOS_6_1 - 992.0 сом для версии 6.1.3, вы сделаете НЕПРАВИЛЬНОЕ предположение, что это 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 –