2012-10-19 17 views
13

wciąż jestem nowy w Xcode/iOS i mieć następujący problem:jak podłączyć do gniazdek UIView niestandardowy podrzędny

w celu wyświetlenia niektórych telefonach informacje debugowania Mam UIView dodane/podłączony jako outlet- właściwość do jednego z moich Viewcontroller. Ten widok jest niestandardową podklasą interfejsu użytkownika. Teraz dodałem niektóre UIlabels jako widoki podrzędne do tego widoku i chcę przeciągnąć połączenia z tych etykiet do mojego pliku customUIview.h, aby etykiety te były dostępne jako właściwości mojej niestandardowej klasy UIview (nie ma potrzeby uzyskiwania dostępu do nich bezpośrednio z poziomu zobacz kontroler).

Problem polega na tym, że budowniczy interfejsu (używam Storyboards/xcode4.3) nie robi tego. Mogę podłączyć gniazda do ViewControllerClass.h, ale nie do pliku .h mojego widoku podrzędnego. Czy ktoś może wskazać, gdzie jest problem?

+0

Przydałoby się zobaczyć deklaracje "IBOutlet". Czy są typu "UILabel"? – bobnoble

Odpowiedz

1

Zaktualizuj klasę widoku niestandardowego z "UIView" do swojej klasy "Widok niestandardowy" w programie budującym interfejs. Teraz możesz nawiązywać połączenia za pomocą ctrl + przeciągając przyciski lub pole tekstowe do odpowiedniej klasy niestandardowej.

+3

To wydaje się działać dla niestandardowego prototypu 'UITableViewCell's, być może ze względu na niektóre magiczne specyficzne dla nich, ale to nie działało dla mnie dla dowolnych podklas UIView. Dla nich musiałem użyć odpowiedzi wysłanej przez tib. –

23

Właśnie rozwiązałem problem. Po ręcznym wpisaniu deklaracji gniazd właściwości w pliku customview.h mogłem ctrl-przeciągnąć-połączyć je stamtąd do odpowiednich obiektów UIlabel w managerze interfejsów. Działa tylko w tym kierunku!

Mimo to dziękuję

+2

Nie jestem pewien, czy coś zmieniło się w Xcode, odkąd to opublikowałeś, ale mogłem to zrobić tylko przeciągając * bez * klawisza CTRL przytrzymanego z gniazda w pliku Objective-C do widoku na storyboardzie. Gdybym przytrzymał klawisz CTRL, dostałbym menu kontekstowe po kliknięciu ikony gniazdka w pliku kodu. –

+1

Zastanawiam się, czy istnieje ku temu powód. – Morkrom

+0

Działał tylko dla mnie podczas przeciągania do rzeczywistego widoku interfejsu/serii, a nie listy obiektów interfejsu po lewej stronie w IB. – Morkrom

0

Problem rozwiązany! Ze względu na interesujący post SO sprzed trzech lat (o łączeniu się z subviewsami UIView) odkryłem, że przeciąga się (nie Ctrl_drag!) Z kręgu akcji lub ujścia (w pliku .h) do kontrolki i to wszystko. Działa doskonale, nawet gdy formanty są w innym widoku niż podklasy UIView. Działa równie dobrze z punktami sprzedaży, jak przy akcjach, chociaż zawsze odsuwasz się od koła.

+0

Przepraszamy - omyłkowo opublikowałem powyższe informacje w niewłaściwym wątku. –

Powiązane problemy