2012-01-23 13 views
9

Mam interfejs iPada zdefiniowany w storyboardie, z SplitViewController. Chcę ustawić delegate SplitViewController, aby wskazywał na kontroler szczegółów, ale IB nie pozwoli na to połączenie.SplitView w Storyboard, nie można połączyć delegata

  • Putting „obiektu” przedmiot i zmieniając klasę do mojego kontrolera szczegół sprawia, że ​​punkt zlecić innej instancji kontrolera szczegółów niż ten wyświetlany.
  • Moje próby połączenia się ręcznie (w didFinishLaunching) w delegacji aplikacji były bezowocne, delegat był nadal zerowy.
  • Zmiana delegata na AppDelegate i implementacja protokołu przebiegły, ale przekazywanie komunikatów do kontrolera szczegółów nie działało (mimo że zweryfiowałem, że odwoływałem się do tego samego wystąpienia).

Nic nie działa. Mogę ustawić self.splitViewController.delegate = self, gdy ładuje się widok szczegółów, a następnie staje się on delegatem bez problemu. Ale brakuje mi jakichkolwiek delegatów, które mają miejsce przed tym punktem.

Dla kontekstu, potrzebuję uzyskać delegate splitboardcontroller, aby móc pokazać przycisk w widoku szczegółów, aby pokazać popover, jak to jest standardową praktyką. Teraz, jeśli aplikacja jest uruchamiana w trybie portretowym, musi zostać obrócona do położenia poziomego, a następnie do tyłu, aby przycisk pojawiał się.

Zrobiłem to z "normalnym" Xibs bez problemu. Wydaje się, że jest to szczególny przypadek bardziej ogólnego problemu polegającego na tym, że nie można łączyć rynków zbytu między scenami w scenorysie.

Odpowiedz

9

nie mam pojęcia, dlaczego to działało i tym razem nie pierwszy 80 razy, ale dodaje to do mojego AppDelegate:

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; 
UINavigationController *navigationController = [splitViewController.viewControllers lastObject]; 
splitViewController.delegate = (id)navigationController.topViewController; 
+1

FYI, używam do tego samego problemu jeszcze z najnowszych Xcode> 6.1. Używam tego samego obejścia dla czegoś, co wygląda na błąd. – Drux