Czy można zamienić plik NIB dla kontrolera UIView, który jest już na ekranie?

Na przykład:

Utwórz nowy UIVC za pomocą initWithNibName, używając „nib-v1”Wyświetl go, np. przy użyciu [(UINavigationController) nav pushViewController: myVC]Zmień NIB, którego myVC używa do „nib-v2”

O ile widzę, jest to „poprawne” podejście do projektowania aplikacji dla wielu aplikacji, podczas przeglądania stron, w których potrzebne są dwa nieco inne ekrany interfejsu użytkownika dla wyświetlanych informacji.

Na przykład większość twoich stron to tekst, ale niektóre z nich mają także obraz (pomyśl o czytniku RSS, gdzie niektóre wpisy RSS mają tekst + obraz, niektóre tylko tekst).

Wcześniej zajmowałem się tym, mając jeden plik NIB z drugą, niewidoczną, nazwaną instancją UIView, którą nałożyłem na pierwszą i włączałem / wyłączałem zależnie od kontekstu, używając flagi „ukrytej”.

Ale jest to oczywiście błędne i marnuje pamięć.

Nie widzę jednak oczywistego sposobu „przeładowania” widoku z pliku NIB. Zgaduję, że chcę jakoś odtworzyć magię, którą robi initWithNibName?

Podejrzewam, że jest to możliwe, ale jestem pewien, że jeśli zrobisz to „w niewłaściwy sposób”, aplikacja po prostu ulegnie strasznej awarii.

questionAnswers(5)

yourAnswerToTheQuestion