Umieszczenie widżetu / widoku w oddzielnym pliku .xib działa i jest odpowiednie, zwłaszcza jeśli chcesz odwoływać się do tego samego widoku z wielu kontrolerów widoku.
Czasami jednak chcesz zobaczyć dodatkowy widok / widżet w tej samej serii ujęć i jest to możliwe. Oto jak to robisz:
Wybierz kontroler widoku w IB (kliknij czarny pasek poniżej widoku), a następnie przeciągnij UIView z biblioteki obiektów na czarny pasek:
Gdy widok znajduje się na czarnym pasku, jest tworzony jak każdy inny widok w IB, ale nie jest dodawany do hierarchii widoku, dopóki nie zrobisz tego w kodzie. W razie potrzeby zmień klasę widoku, aby pasowała do Twojej własnej podklasy:
Możesz podłączyć go do kontrolera widoku, tak jak podłączasz każdy inny widok:
Dodany widok pojawi się w konspekcie dokumentu i możesz tam również podłączyć akcje i odniesienia:
Problem, który pozostaje, polega na tym, że w rzeczywistości nie możesz zobaczyć widoku bez względu na to, ile razy spróbujesz kliknąć lub dwukrotnie kliknąć, co zniweczyłoby cały cel umieszczenia go w tej samej planszy. Na szczęście znam dwa sposoby obejścia tego problemu.
Pierwszym rozwiązaniem jest przeciągnięcie widoku z czarnego paska z powrotem do widoku kontrolera widoku, edytowanie go, a po zakończeniu przeciągnięcie z powrotem do czarnego paska. Jest to kłopotliwe, ale niezawodne.
Drugie obejście jest bardziej skomplikowane, ale wolę je, ponieważ pozwala mi zobaczyć wszystkie moje widoki w tym samym czasie:
Przeciągnij UITableView z biblioteki obiektów do nowo dodanego widoku.
Następnie przeciągnij UITableViewCell do tego UITableView.
Gdy to zrobisz, twój widok wyskakuje magicznie z boku, ale masz UITableView, którego nie chcesz. Możesz zmienić rozmiar tego na 0x0 lub możesz go usunąć, a Twój UIView (zwykle) nadal będzie widoczny.
Czasami widok wtórny będzie ponownie ukrywany w IB. Możesz powtórzyć powyższe kroki, jeśli usunąłeś UITableView lub jeśli UITableView nadal znajduje się w hierarchii, wystarczy kliknąć UITableViewCell, a widok pojawi się ponownie.
Druga metoda działa dla UIViews, ale nie tak dobrze dla UIToolbars i jest niemożliwa dla UIButtons, więc najczystszym rozwiązaniem, jakie znalazłem, gdy trzeba uwzględnić wiele różnych podglądów podrzędnych, jest dołączenie pojedynczego pomocniczego UIView do kontrolera widoku jako kontenera, który nigdy nie jest pokazywany, umieść tam wszystkie swoje widoki dodatkowe i użyj sztuczki UITableViewCell, aby wszystko było widoczne. Zmieniam rozmiar mojego atrapy UITableView na 0x0, aby uczynić go niewidocznym. Oto zrzut ekranu pokazujący, jak to wszystko wygląda razem:
xib
osobne pliki dla kontrolerów widoku, a nie w serii ujęć?