Вопрос об универсальном приложении iOS

#iphone #objective-c #ipad #universal-binary

#iPhone #objective-c #iPad #универсальный-двоичный

Вопрос:

Я отправил свое приложение для iPad в Apple и получил одобрение. Теперь я хочу добавить поддержку iPhone в приложение.

Мой вопрос № 1 заключается в:

Q1. возможно ли сделать приложение универсальным в этот момент после отправки?

Если да, у меня есть вопрос № 2

Q2. мое приложение для iPhone точно такое же, как и для iPad, но только несколько просмотров выглядят по-другому из-за настройки размера экрана. Что мне следует сделать в XCode, чтобы указать, какой класс iPhone / iPad использует соответственно? Я могу создавать их плавно, когда разделяю их на 2 проекта.

Спасибо.

Ответ №1:

Вы можете модифицировать то же приложение и добавить поддержку другого устройства. вам необходимо повторно отправить приложение еще раз.

С помощью with в вашем коде вы можете определить, на каком типе устройства оно выполняется, и на основе этого вы можете загрузить соответствующий файл XIB для каждого контроллера представления.

Ответ №2:

ДА.Это просто. вы должны создать универсальное приложение

Файл—> новый проект-> Приложение на базе Windows

затем вы выбираете тип продукта Универсальный, и у вас появляется отдельный вид для iphone, а также
ipad

Ответ №3:

Вы можете идентифицировать устройство с помощью этого

     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // iPad stuff
  }
  else {
    // iPhone/iPod stuff
  }
  

Большую часть пользовательского интерфейса можно переделать просто с помощью параметров автоматического изменения размера, но некоторые этого не делают.

Также для определенных классов, которые не существуют в iPhone / iPod (например, UISplitViewController), вы можете использовать NSClassFromString, который вернет класс объекта или nil, если не может быть загружен.

Ответ №4:

Q1: Да, просто преобразуйте свой проект в universal и отправьте его с тем же идентификатором.

Q2: Довольно просто преобразовать свой проект в universal, выполнив действия, приведенные здесь (http://useyourloaf.com/blog/2010/4/7/converting-to-a-universal-app-part-i.html ) . Основная идея заключается в извлечении вашей бизнес-логики из контроллеров и использовании разных контроллеров для iPhone и iPad. Не пытайтесь реализовать это с помощью подобного блока кода

 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
     // ipad goes here
}
else
{
     // other
}
  

примечание:
Если вы загуглите, вы найдете эту ссылку, не используйте ее, она устарела — http://iphonedevelopment.blogspot.com/2010/04/converting-iphone-apps-to-universal.html