Jaka jest najlepsza metoda implementacji przesuwania między widokami w OS X? Widoki te są inicjowane z końcówek ze swoimi kontrolerami widoku i mają ten sam typ klasy. Aby nadać tło, każdy widok wyświetla odpowiednie dane dla bieżącej daty.Jaka jest najlepsza metoda implementacji przesuwania między widokami w OS X?
Chciałbym utworzyć funkcję, która ładuje dane dla następnej (lub poprzedniej) daty. Mogę po prostu załadować dane do bieżącego widoku, ale czy mogę to zrobić za pomocą animacji podobnej do przesuwania między spacjami w OS X? Wyobrażam sobie, że musiałbym zainicjować nowy widok, załadować tam dane, a następnie zainicjować przesuwanie przejścia do nowego widoku.
Martwię się, że wykonanie wszystkich tych nowych widoków byłoby całkiem złe. Oto kilka opcji, które rozważyłem, aby rozwiązać ten problem:
- Utwórz słownik NSDate na MYViewController. Załaduj i zapisz każdy widok z tej mapy, ale może to zająć dużo pamięci.
- Utwórz podwójnie powiązaną listę MYViewController i załaduj/zapisz daty z datami. Może to również potencjalnie zająć dużo pamięci i jeśli użytkownik przeskoczy do daty, pamięć podręczna zostanie po prostu usunięta.
Jakieś myśli? Jeśli istnieje jakiś sposób na załadowanie danych w bieżącym widoku, to uważam, że byłaby to najlepsza opcja.
Dzięki!
Czy rozważałeś użycie tylko dwóch instancji kontrolera widoku? Jeden wyświetla dane, które poruszają się poza ekranem, a jeden wyświetla dane, które poruszają się na ekranie? Byłoby to analogiczne do ponownego użycia komórek w UITableView. –
Przypuszczam, że mógłbym to zrobić. Czy mógłbym dalej zamieniać się między dwoma kontrolerami widoku? Moją jedyną rezerwą jest to, że mam inne odniesienia do kontrolera widoku. Więc musiałbym śledzić, który z nich jest aktualny czy coś takiego? Czy masz przykład, jak to zrobić? –
Ok, więc myślę, że zamierzam zaimplementować coś na wzór [this] (http://liberatiluca.com/blog/2011/08/03/how-uitableview-reuses-cells/). W mojej implementacji ESViewCache będzie analogiczny do UITableView, a ESViewCacheCell będzie analagiczny do UITableviewCell. Zanim jednak to zrobię, zobaczę, czy mogę po prostu podklasować NSTableView i wyświetlić bieżącą "ESViewCacheCell". –