2013-07-24 12 views
12

Mam niestandardową klasę, która dziedziczy z UIControl, aby uzyskać zdarzenia dotyku. Jest to po prostu zbiór innych elementów sterujących, które działają jak jeden. Konwertuję swoją aplikację z Xibs na storyboard. To było w większości bezbolesne, z wyjątkiem tego.Jak mogę uzyskać niestandardową funkcję UIControl, aby uczestniczyć w ruchu typu "push"?

Przeciągam UIView do mojej sceny, zmieniam klasę na moją niestandardową kontrolę, podłączam ją do gniazdek w moim ViewController. To, co chcę zrobić z kontrolką po kliknięciu, wykonuje (push) przechodzenie do innego kontrolera ViewController. Ale wyloty w projektancie nie są dostępne dla mojego UIControla, aby ustawić przejście.

Czy można to zrobić? Jeśli tak, co mam zrobić w klasie, aby to umożliwić?

Odpowiedz

7

Nie sądzę. Patrząc na panelu Połączenia Inspektora, UIButton i UIBarButtonItem przypadki specjalnego traktowania-an extra „wyzwalane segues” działanie można podłączyć do sąsiednich kontrolerów widoku:

UIButtons can trigger segues

Choć zmienia klasę swojego widoku danych, by potomek UIControl marek standardowy zestaw zdarzeń kontrolnych dostępny, niestety, Interface Builder nie pozwala ci podłączyć się. Najlepsze co możesz zrobić, to stworzyć ręcznie wyzwalane segue od kontrolera widoku do drugiego, a następnie podłączyć do kontroli niestandardową metodą IBAction że wykonuje segue programowo:

- (IBAction)performManualSegue:(XYZCustomControl *)sender 
{ 
    [self performSegueWithIdentifier:@"manualPushSegue" sender:sender]; 
} 

IBAction for manually triggering segue