2014-10-10 11 views
10

Załóżmy, że chcę zaprojektować główną aplikację szczegółów, szablon projektu szczegółowego Xcode6 dla uniwersalnej aplikacji zawiera UISplitViewController i splitViewController jest nowy w iOS8. Chcę też wspierać aplikację na iOS7.Aplikacja do projektowania obsługująca zarówno iOS8, jak i iOS7

Ogólnie

  1. Jaki jest najlepszy sposób, aby zaprojektować uniwersalną aplikację używając Xcode6 storyboard, które obsługują zarówno systemów iOS 8 i iOS7?
  2. Czy lepiej używać oddzielnej planszy do różnych wersji systemu operacyjnego?
  3. Jakie są najlepsze praktyki, które powinniśmy zastosować, aby aplikacja była zgodna z obydwoma systemami operacyjnymi?
+0

Świetne pytanie !!! – Arjuna

+0

[Ten wątek] (http: // stackoverflow.com/questions/24172860/how-can-xcode-6-adaptive-uis-be-backwards-compatible-with-ios-7-and-ios-6) ma dyskusję na temat wspierania ios 7 z ujednoliconym storyboardem. Nie jest to jednak specyficzne dla aplikacji typu master-detail, ale myślę, że dzięki niektórym poprawkom możesz to zrobić. – tbraginets

Odpowiedz

4

"Najlepszy sposób" na stworzenie takiej aplikacji będzie prawdopodobnie zależał od tego, co dokładnie może zrobić aplikacja. Niektóre sposoby będą lepsze niż inne, w zależności od wymaganego specjalnego zachowania.

Ale na pewno można użyć jednego uniwersalnego storyboardu w Xcode 6, który używa klas wielkości i nadal kieruje na iOS 7, zarówno na iPhone'a, jak i na iPada, używając UISplitViewController. Zrobiłem to właśnie z powodzeniem. Dużo pracy wymagało upewnienia się, że działa poprawnie i wyglądało konsekwentnie na iOS 7 i 8. Musisz być trochę ostrożny, jeśli chodzi o wykonywanie różnych nowych selekcji adaptacyjnych, ponieważ jest to ogromna różnica między iOS 7 i 8 Na przykład, wykrywanie, kiedy masz popover, będzie wymagało trochę pracy dla dwóch różnych systemów operacyjnych, obsługa sekwencji odwijania będzie wymagać specjalnego traktowania itp. Będzie wymagać wielu testów. Poświęć czas na testowanie iPhone'a 6 Plus - w krajobrazie pokaże się zarówno mistrz, jak i szczegół na ekranie, ale możesz mieć nad nim kontrolę.

Po przejściu przez to doświadczenie, chciałbym znacznie raczej zaimplementować pojedynczy storyboard, w przeciwieństwie do dwóch storyboardy, po jednym dla każdego systemu operacyjnego, a na pewno z dala od tworzenia storyboard dla każdego systemu operacyjnego, a następnie po jednym dla każdego typu urządzenia.

Będziesz chciał przeczytać na temat SDK Compatibility Guide, aby dowiedzieć się, jak wykryć dostępność API. Jeśli zaimplementujesz interfejs API, który nie istnieje w systemie iOS 7, aplikacja ulegnie awarii, więc musisz uruchomić ten kod tylko wtedy, gdy ta funkcja istnieje dla systemu operacyjnego, na którym działa aplikacja. Na przykład możesz chcieć wykorzystać nowy interfejs API UIBlurEffect, ale nie ma go w systemie iOS 7. Zdobądź wiedzę na temat tego, co oznacza porzucenie, a wiedza, co zmieniło się w systemie iOS 8, bardzo pomoże. Na przykład rotacyjne interfejsy API są przestarzałe na rzecz kolekcji cech klasy rozmiaru, ale nie są one dostępne w systemie iOS 7, więc musisz nadal używać wycofanego interfejsu API rotacji.

Sprawdź również niektóre WWDC videos z tego roku. Mają kilka filmów, które omawiają nowe sekcje adaptacyjne i uniwersalne storyboardy. Zauważ, że te storyboardy są DO kompatybilne wstecz z iOS 7, ale są pewne klasy wielkości, które nie są dostępne na iOS 7. Zobacz this question i odpowiedź podałem, aby uzyskać więcej informacji. Filmy WWDC z poprzednich lat omawiają także, w jaki sposób można obsługiwać wiele systemów operacyjnych, stopniowe ulepszanie itp.

Oczywiście, jeśli masz pytania/problemy, Stack Overflow to świetne źródło informacji. Wiele pytań, które zamieściłem w ciągu ostatnich kilku miesięcy, dotyczy dokładnie tego tematu, jak modyfikować zachowanie UISplitViewController, uzyskać wsparcie dla obu systemów operacyjnych, używając jednego storyboardu i nowych adaptacyjnych seguesów itp. Możesz przeczytać za ich pomocą, aby dowiedzieć się, czego można się spodziewać podczas tworzenia aplikacji w ten sam sposób.

Powiązane problemy