2012-01-27 30 views
9

Właśnie skończyłem aplikację na iPhone'a i chcę, aby była uniwersalna. Czytałem już kilka postów, ale są one nieco stare (od 2010 r.).Jak podłączyć aplikację iPhone do iPada (Storyboard)

Co mam:

  • prosta aplikacja iPhone, niedawno utworzony (iOS 5 - Storyboard), z trzema ekranami.
  • Moja aplikacja przedstawia tabelę z trzema kartami, które można odwrócić, dotykając ich. Użytkownik może wprowadzić (na drugim ekranie) tekst do wyświetlenia na kartach.
  • Kiedy stworzyłem projekt, sprawdziłem "Uniwersalny", więc mam dwie Storyboardy. Potem nic więcej nie musiałem robić z iPadem (z wyjątkiem linii w mojej opcji "contact support" e-mail, w której użyłem UIModalPresentationPageSheet).

Co chciałbym osiągnąć:

  • sama aplikacja na iPada: moja aplikacja jest tak proste, że nie ma żadnego pożytku podzielonych widoków lub szczegółów. Chcę tylko te same obiekty i układ, ale z większą i lepszą grafiką (tabela, karty itp.).

Podoba mi się, ponieważ przyniesie świetną migrację na poziomie wprowadzającym.

Nie mam pojęcia, od czego zacząć. Kiedy uruchamiam symulator iPada, pojawia się biały ekran i to wszystko.

+0

Erm ... edycja storyboardu na iPadzie byłaby dobrym początkiem. – esqew

+0

Czy w przypadku wersji na iPada trzeba ponownie wykonać cały scenorys i ponownie użyć kodu? Dodaj ponownie przyciski, etykiety i każdy element interfejsu użytkownika i połącz je z bieżącymi metodami? –

+0

Yup, platformy iPhone i iPad są bardzo, bardzo symulatorami. Poza kilkoma wyjątkami powinieneś być w stanie to zrobić bez problemu. – esqew

Odpowiedz

12

Cóż, to się robi.

Tak jak prawie wszystko, jest to całkiem proste, gdy już wiesz, co robić.

Powiedziałbym, że dla tych przypadkach, takich jak moja, gdzie UI nie zmienia się więcej niż rozmiary lub (x, y) koordynuje proces można podsumować tak:

  1. Replikacja każdy UI element na Storyboard na iPada (skopiuj i wklej) i dostosuj pozycję i rozmiar, jak uważasz, aby pasowały
  2. Ponownie podłącz wszystko ponownie. Każdy przycisk, segue (będziesz musiał również dodać nazwę ponownie), itp.
  3. Sprawdź w swoim kodzie każde miejsce, w którym wpływa twój interfejs (np. Współrzędne X, Y), określ, czy aplikacja działa na iPhone lub iPad i podzielić kod odpowiednio
  4. Jeśli masz jakiekolwiek lokalizację w sprawie wniosku będziesz musiał zaktualizować nowe elementy interfejsu użytkownika na iPadzie Storyboard
  5. Wybierz cel dla testów na symulatorze i wypróbować

Aby zidentyfikować, w którym urządzeniu działa aplikacja, można użyć:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    //I'm running on the iPad 
} else { 
    //I'm running on the iPhone 
} 

I to wszystko. Ponownie, w prostym przypadku, takim jak moje ponowne użycie kodu jest bezwzględne (100%), nowy kod, który musisz dodać, jest minimalny (w zasadzie instrukcje IF tam, gdzie jest to konieczne), a powielanie elementów interfejsu użytkownika jest tak proste, jak kopiowanie i wklejanie .

Mam nadzieję, że przydaje się to komuś innemu i jeśli masz zalecenia, aby to poprawić, są bardziej niż mile widziane.

+2

Z pewnością nie jest to najlepsze podejście do tego problemu? Potencjał do wprowadzania błędów/przegapienia aktualizowania elementów interfejsu użytkownika, błędnych nazw itp. Wydaje się być ogromny. :( – jmc

+0

Zobacz tę odpowiedź http://stackoverflow.com/questions/8465769/convert-storyboard- from-iphone-to-ipad (był to jeden z komentarzy na ten temat, ale do tak głęboko ukrytych) – jmc

3

Jeśli chcesz ponownie użyć swojego iPhone storyboardu, po prostu przejdź do ustawień projektu. W zakładce TARGETS znajdują się wiersze "Główna nazwa pliku zestawu scenariusza" i "Główna nazwa pliku głównego zestawu scenariuszy (iPad)". Po prostu edytuj iPada, aby mieć taką samą wartość jak druga. W moim przypadku musiałem go edytować jako "Podstawową nazwę pliku głównego storyboardu (iPad)" z wartością "MainStoryboard_iPhone".

+0

Ustaw urządzenia do uniwersalny i działa idealnie (jeśli twój autolayout ma rację) – Toby

4

Otwórz plik Storyboard w Finderze Skopiuj iPhone'a Storyboard i zmień jego nazwę Main-iPad.storyboard

Wewnątrz Xcode, kliknij prawym przyciskiem na storyboard -> „Otwórz jako” -> „kod źródłowy”

Szukaj targetRuntime = "iOS.CocoaTouch" i uczynić go targetRuntime = "iOS.CocoaTouch.iPad"

teraz wszystko zapisać i ponownie otworzyć Xcode -> iPad-Storyboard zawiera takie same jak iPhone-pliku, ale może everyting być zdyscyplinowanym, musisz to zorganizować samemu.

Wreszcie, aby uzyskać format iPad również zmienić kod w MainStoryboard_iPad.storyboard od: do

Następnie przejdź do „StroryBoardEx-Info.plist” pliku, szukaj „nazwy głównej bazy plików nib (iPad) "i zrób" Main-iPad.storyboard "

Powiązane problemy