Я разрабатываю приложение. Я создаю Универсальное приложение, используя модель приложения Single View Based. Итак, мне нужно создать новый класс. Но он дает только один xib. Мне нужны два xibs для iPhone и iPad. Скажите, пожалуйста, как создать два xib для одного класса.Как создать новый UIViewController в универсальном приложении
ответ
Создать новый с таким же именем .. позволяет предположить, ваше мнение имя контроллера «NewViewController» .. Ваш XIB будет NewViewController~ipad
для IPad и NewViewController~iPhone
для Iphone .. поэтому, когда вы реализуете initWithNibName
просто написать базовое имя для вас xib, который равен NewViewController
, и iOS позаботится о вызове совпадения xib на основе текущей используемой платформы .. и не забудьте назначить пользовательский класс для владельца файла в новом xib как ваш новый класс, как изображение ниже.
Для создания нового XIB проверьте эти изображения:
Malek_Jundi имеет четкое руководство о том, как создать и загрузить файл .nib для Айфона и Ipad.
Если вы хотите создать другой класс для каждого случая (iPhone или IPad), вы можете использовать IF заявление, как это:
UIViewController *target;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
target = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]];
} else {
target = [[NewViewController_ipad alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]];
}
Но я слишком ленив, чтобы ввести «IF» утверждение неоднократно в моем коде создать определенный класс для iphone/ipad. У меня есть альтернативный способ:
- (Class)idiomClassWithName:(NSString*)className
{
Class ret;
NSString *specificName = nil;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
specificName = [[NSString alloc] initWithFormat:@"%@_ipad", className];
} else {
specificName = [[NSString alloc] initWithFormat:@"%@_iphone", className];
}
ret = NSClassFromString(specificName);
if (!ret) {
ret = NSClassFromString(className);
}
return ret;
}
- (void)createSpecificNewController
{
Class class = [self idiomClassWithName:@"NewViewController"];
UIViewController *target = [[class alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]];
//...
}
- 1. Как программно создать новый UIViewController в Swift
- 2. SQLite в универсальном приложении
- 3. Замена NavigationService.Navigate в универсальном приложении
- 4. Как создать новый UIViewController, скопировав существующий?
- 5. Использование UIPopoverController в универсальном приложении
- 6. WCF-клиент в универсальном приложении
- 7. Время разработки в универсальном приложении
- 8. Как создать объект клона в универсальном приложении Windows 8.1?
- 9. Как создать панель слайд-меню приложения в универсальном приложении Windows
- 10. Нельзя использовать UISplitViewController в универсальном приложении?
- 11. Индивидуальный UINavigationbar в универсальном приложении
- 12. EventKit в универсальном приложении (OS3.2)
- 13. Подкласс UISplitViewController в универсальном приложении
- 14. Стиль ComboBox в универсальном приложении
- 15. Динамическая таблица в универсальном приложении
- 16. Получить основную раскадровку в универсальном приложении
- 17. Как читать произвольную папку в универсальном приложении?
- 18. Как установить размер окна в универсальном приложении?
- 19. Как скачать видео YouTube в универсальном приложении?
- 20. iPhone - Как использовать #define в универсальном приложении
- 21. Пользовательский TabBar в универсальном приложении iOS
- 22. Smaato iPhone ad в универсальном приложении
- 23. Bing Maps MVVM в универсальном приложении
- 24. Как создать класс библиотеки UIViewController?
- 25. Обновление ресурса в универсальном приложении Windows XAML
- 26. BringToFront/SetZIndex в универсальном приложении Windows
- 27. ConfigurationManager и AppSettings в универсальном (UWP) приложении
- 28. Эффект Drop Shadow в универсальном приложении Windows
- 29. Scroll Просмотр содержимого в универсальном приложении?
- 30. Управление ресурсами в универсальном приложении ios
Это значит, что нам нужно создать файлы 2.h и файлы 2.m с тем же именем. Я исправлю? – user1400581
Нет .. один .h и один .m, и два xib. снова прочитайте мой ответ –
Как создать xib с файлами .h и .m. – user1400581