Программирование универсального приложения в iOS

Когда я программирую универсальное приложение, скажу, что у меня есть IBAction:

(IBAction)magicCode:(id)sender { textField1.text = "TEST"; } 

Мне нужно создать новый IBAction для каждого вида (iPad и iPhone). Я не могу иметь textField1 дважды в файле заголовка, поэтому мне просто интересно, как все это делают. Нужно ли помещать текстовое поле в приложение iPhone с другим именем, чем в iPad? Или есть другой способ, которым все это делают?

2 Solutions collect form web for “Программирование универсального приложения в iOS”

Нет, вы можете иметь тот же IBAction и IBOutlet в UIViewController, который имеет дело с текстовыми полями в двух разных Nib (один для iPhone и один для iPad). В этом весь смысл разделения между View Controller и Views в архитектуре MVC.

Просто используйте тот же UIViewController, что и владелец файла в обоих Nib, и сделайте все соответствующие соединения IBOutlet и IBAction, и все будет работать.

Мне нужно создать новый IBAction для каждого вида (iPad и iPhone).

Во-первых, действия обычно включаются в контроллеры просмотра, а не в представления. Я думаю, это, вероятно, то, что вы имели в виду, но я указываю на разницу, потому что я видел, как многие люди путаются в этом вопросе.

Когда вы создаете универсальное приложение, то есть одно приложение, которое адаптирует свой пользовательский интерфейс к устройству (iPad или iPhone / iPod Touch), на котором оно работает, общей стратегией является предоставление различных макетов представлений, которые наилучшим образом используют доступные размер экрана, но использовать одни и те же контроллеры. Например, скажем, у вас есть приложение с интерфейсом master / detail. На небольших устройствах вы сначала представите основную часть интерфейса, и когда пользователь выберет что-то, вы увидите детальную часть интерфейса. На iPad, с большим экраном, вы одновременно показываете как основные, так и подробные интерфейсы в режиме разделения. Сравнивая эти два варианта, представления, вероятно, будут разными, и представление представлений контроллеров будет различным, но сами диспетчеры представлений должны оставаться неизменными. Это хорошо, поскольку большая часть работы по созданию приложения идет на создание контроллеров представления.

Если ваше приложение похоже на то, что я описал (или если вы можете сделать его похожим), то нет, вам не нужны отдельные действия для iPad и iPhone, потому что вы будете использовать одни и те же контроллеры представлений в обоих случаях. Однако могут быть моменты, когда поведение приложения на двух разных устройствах отличается от того, что имеет смысл иметь специфичные для iPad и специфичные для iPhone контроллеры представлений. Вы все равно сможете использовать одни и те же действия, выведя каждый из них из общего родительского класса, который содержит действия. Если нет, вам нужно, чтобы каждый класс выполнял свои собственные действия.

Interesting Posts

Listview не обновляется, когда isVisible установлен в true

Как загрузить и установить .ipa за пределами App Store с .plist

Инструменты CFString (магазин)

Устройства, незарегистрированные после нажатия

Оболочка Objective-C для iOS для Документов Google

В чем разница между removePersistentStore и destroyPersistentStoreAtURL?

NSString drawInRect заданный контекст

ideviceinstaller не работает с ERROR: не удалось найти iTunesMetadata.plist в архиве

Две строки текста на UIButton с разными шрифтами каждый

Управление памятью с сохранением изображения из UIImagePickerController

Когда я выбираю UITableViewCell, моя метка контроллера представления – это действие за

Почему значение NSURLCreationDateKey nil на iOS 4.3, но не на iOS 5+?

Render не удалось, поскольку формат YCC420f в пикселях не поддерживается

iOS: создание MP3 на устройстве

Где ясная полная ссылка на сетевые ошибки iOS и Mac OS X, такие как kCFStreamErrorDomainSSL?

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.