Docs na viewControllerWithRestorationIdentifierPath:coder:
powiedzieć:W jaki sposób viewControllerWithRestorationIdentifierPath: coder: znaleźć istniejącą instancję?
Implementacja tej metody powinny stworzyć (lub znaleźć) z odpowiedni widok kontrolera obiekt i zwraca go ... To nie zawsze jest niezbędne do utworzenia nowego obiektu widok kontrolera w waszej implementacji tej metody. Można również zwrócić istniejący obiekt kontrolny, który został utworzony w inny sposób. Na przykład: , jeżeli kontroler widoku został już załadowany z pliku scenorysu, , zwrócisz ten obiekt zamiast utworzyć nowy. [Moja kursywą.]
To zawsze wydawało mi się kompletnym nonsensem. To jest metoda klasy! W tej chwili nie mamy żadnego dostępu do żadnych wystąpień - chyba że je utworzymy. Byłbym wdzięczny, gdyby ktoś mógł mi wyjaśnić, w jaki sposób metoda klasy może znaleźć lub wiedzieć o "kontrolerze widoku, który został już załadowany z pliku scenorysu".
EDIT:. „Powróci istniejący obiekt widoku kontrolera, który został utworzony przez inny środek” Aby zdobyć nagrodę należy mi pokazać rzeczywisty przypadek, ze swojej aplikacji, metody klasy viewControllerWithRestorationIdentifierPath:coder:
używanego do
W prawdziwym życiu, ponieważ delegat aplikacji jest rzeczywiście prawdopodobnie tym, który wie, jakie kontrolery widoku zostały już załadowane z pliku scenorysu i jak się do nich odwołać, gdy mechanizm przywracania się uruchamia, wydaje się bardziej prawdopodobne, że pomiń 'viewControllerWithRestorationIdentifierPath: coder:' i użyj aplikacji 'delegata: viewControllerWithRestorationIdentifierPath: coder:' _instead_. A ponieważ jest to metoda instancji, nie ma problemu. Wydaje mi się, że nie udało mi się wywołać żadnych okoliczności, w których nie byłoby to możliwe. – matt