Pytanie Tworzenie statycznej struktury wykorzystującej Xibs ... jak to zrobić?


Mam potrzebę utworzenia pakietu klas UI, które mogą być zawarte w XCode4 projekt integracji przez programistę, a następnie uzyskać instancję za pomocą pliku konfiguracyjnego w połączeniu z NSClassFromString - a statyczna wtyczka. Odniosłem sukces, tworząc biblioteki zawierające UIViews ten układ oparty na kodzie. Teraz próbuję zezwolić programistom na tworzenie interfejsów użytkownika na podstawie plików XIB i innych zasobów. Wdrażam najbardziej podstawową wersję tego ... UIViewController ładującego plik xib utworzony bezpośrednio przez kreator "nowego pliku" w XCode4. Jedyną modyfikacją, którą tworzę jest dodanie etykiety do interfejsu użytkownika w Xib.

Mam problemy z wczytaniem pliku xib. Jeśli dołączę Xib do projekt integracji wszystko dobrze. Kiedy tworzę UIViewController z biblioteki, znajduje on Xib w katalogu głównym pakietu aplikacji i ładuje go. Jednak jest to bardzo kłopotliwe podczas kompilacji projekt integracji, Chciałbym móc po prostu połączyć się z biblioteką i nie trzeba dodawać każdego xib do projekt integracji indywidualnie. Co więcej, użycie katalogu głównego pakietu aplikacji jest złe, ponieważ nie ma struktury katalogów, która mogłaby ułatwić obsługę wielustatyczne wtyczki. Próbowałem utworzyć folder, któryprojekt integracji może zawierać się podczas budowania, a xibs dla statycznej wtyczki można po prostu zrzucić do folderu przed kompilacją. Jeśli to zrobię, xib dostanie się do pakietu aplikacji, ale kiedy załaduje się klasa UIViewController, nie może znaleźć Xibs. Nie udało mi się zakodować rozwiązania, aby uzyskać UIViewController do initWithNibName: bundle: poprawnie, gdy xibs są w podfolderze.

Moja ostatnia próba polegała na stworzeniu statycznego frameworka za pomocą tego artykułu:http://simplyitinc.blogspot.com/2011/04/creating-static-framework-in-xcode-4.html . Wydaje się, że mam do czynienia z frameworkiem, z którym mogę się połączyć, a xib jest w tym katalogu ramowym, ale ... Xib nie zostanie umieszczony w pakiecie aplikacji, gdy połączę się z ramą. Moje zajęcia są dostępne, ale nie można załadować pliku xib, oczywiście dlatego, że nie ma go w pakiecie aplikacji.

Wszelkie sugestie, w jaki sposób można spełnić ten wymóg?


10
2018-05-27 15:11


pochodzenie




Odpowiedzi:


Sprawdź moją odpowiedź na następujące pytanie. Podstawową ideą jest to, że tworzysz pakiet, w którym umieszczasz Xibs, obrazy i inne zasoby i używasz ich obok swojej statycznej biblioteki.

Zarządzanie relacjami z projektami iPhone


2
2017-08-11 03:20



To nie wystarcza: musisz użyć ibtool, aby skompilować plik .xib do pliku .nib. W zależności od procesu kompilacji może to być zrobione, ale jest to plik .nib, który należy skopiować do pakietu. - Glenn Maynard