2013-08-03 11 views
6

interfejs Builder Gdybym prawym przyciskiem myszy na Tableview, mam możliwość delegatów i DataSource placówek, które czasami łączymy do właściciela pliku, który jest w większości przypadków View Controller, która realizuje te protokółCzy można połączyć delegate i źródło danych CustomViews w konstruktorze interfejsów?

Jak można Dostaję podobną opcję dla mojego widoku niestandardowego, który ma delegata i właściwość źródła danych?

Odpowiedz

16

Musisz spełniać następujące warunki:

  1. Widok na Custom Class powinna być ustawiona na nazwę klasy widoku niestandardowego w konstruktorze Interface (przez inspektora Identity). Jeśli obiekt delegowany lub obiekt dataSource jest również widokiem niestandardowym, należy się także upewnić, że klasa niestandardowa tego widoku jest ustawiona na
  2. @interface dla niestandardowej klasy powinny ozdobić właściwości delegata i źródła danych za pomocą IBOutlet. Na przykład, @property (nonatomic, weak) IBOutlet id <SomeProtocol> delegate;
  3. Jeśli zadeklarowana protokół (-ów) dla delegata lub źródła danych, obiekt docelowy, który chcesz użyć jako delegata lub DataSource powinny zostać uznane za wdrożenie tego protokołu
+0

mi brakuje drugiego warunku! –

+0

Tak, "IBAction" i "IBOutlet" są po prostu preprocesorowymi makrami używanymi przez Konstruktora interfejsu do określania, które vary/właściwości pozwalają na podłączenie do gniazdek lub działań. Nie mają one żadnego wpływu na skompilowany kod. –

+0

To powinno również pokazywać inne właściwości, które są IBOutlets? –

-1

Można to osiągnąć postępując zgodnie z tymi krokami.

  1. utworzyć nową podklasę UIView
  2. w pliku .h ustawiony delegata Tableview i właściwość DataSource jak

    UIViewController

  3. następnie wdrożenie protokołów delegata i źródła danych w pliku .m. jak zwykle.

  4. OK. teraz w widoku kontrolera przeciągnij widok do konstruktora interfejsu lub stwórz instancję programowo.

  5. Ustaw klasę widoku na utworzoną podklasę. (po prawej stronie budowniczego interfejsu);

  6. następnie umieść UITableView wewnątrz tego widoku. i przeciągnij połączenia do jego nadrzędnego interfejsu użytkownika i wybierz źródło danych i delegatów.

  7. to wszystko zrobić teraz swoją UIView klasy sub będzie działać jako źródło danych i delegata do tableview ..
Powiązane problemy