Xcode 4.6.1 iOS 6 wykorzystujące storyboardymożliwe jest segue z UITableViewCell na UIView do innego widoku
Mój problem polega na tym
Mam UITableView z dynamicznych komórek prototypowych na UIView w miłym UIViewController (który sam jest wbudowane w kontroler nawigacji) i chcę segue od jednej konkretnej komórki do innego widoku
(Zanim ktoś sugeruje, należy po prostu być przy użyciu UITableViewController, mam inne rzeczy na UIView, tak ja w ten sposób skonfigurowany w ten sposób.)
Teraz nie wiem, jak utworzyć segment
Jeśli przeciągnę z prototypu UITableViewCell, aby utworzyć przejście, wszystkie wygenerowane komórki automatycznie wywołają segue - kiedy potrzebuję tylko jednego, aby to zrobić. Jest to normalne zachowanie i obejdę to, gdybym używał UITableViewController, tworząc przejście, przeciągając od UITableViewController i wywołując [self performSegueWithIdentifier: .... Z mojego didSelectRowAtIndexPathMethod tak, że tylko określona komórka, którą chcę wykonać, przełącza go .
ja nie mam UITableViewController w tym przypadku - tylko mój UITableView na UIView, który jest częścią UIViewController podklasy
Grałem wokół i właśnie odkrył, że nie można przeciągać z UITableView - nie pozwala ci tego zrobić, więc to był deadend.
Moim jedynym wyborem, który wydawał mi się w lewo, aby przeciągnąć z UIViewController
więc próbowałem to i oczywiście XCode rzuca się na błąd wykonania linii Segue mówią mi, że mam ... nie widzialnym interfejs "LocationTV" deklaruje selektor performSegueWithIdentifier. LocationTv jest moją podklasą widoku tabeli.
Co to jest poprawny sposób próbować wywołać nowy widok w tej sytuacji
podziÄ ™ kowaniami
Simon
Moja tableview jest już własny UITableViewDelegate. (Mam 4 różne odsłony tabel, które użyłem UISegmentedCntrol do przełączania ukrytych właściwości włączania i wyłączania, więc tylko jeden pojawia się na raz - jeden z tych widoków tabel, które muszą wywoływać nowy widok). Czy to oznacza niepotrzebną potrzebę przeniesienia wszystkich rzeczy delegowanych z UITableView na UIViewController, na którym siedział? – SimonTheDiver
Utworzono więc specjalistyczne klasy UITableView. Klasy te muszą mieć sposób na uzyskanie dostępu do kontrolera ViewController, w którym działają, lub musisz utworzyć implementację podobną do tej, którą proponuje inna odpowiedź. Poszukałbym prostoty i stworzenia właściwości (nazwij ją 'viewController') w podklasach UITableview zawierających odniesienie do ViewController. W 'didSelectRowAtIndexPath:' możesz wywołać '[self.viewController performSegueWithIdentifier: identyfikator]'. Właściwość 'viewController' powinna być ustawiona w' viewDidLoad' kontrolera widoku. – allprog
Zdefiniowałem protokół (z metodą do wywołania performSegue) wewnątrz mytableView.h i sprawił, że moja podklasa UIViewContoller jest zgodna z tym. Podobny do danypata suggested.Worked. Twój pomysł wydaje się być prostszy i chcę go wypróbować. Zaimportowałem klasę UIViewController - #import "MultiTableHoldingView.h" do mojej podklasy UItableView, ale gdy próbowałem ją zadeklarować w interfejsie mojej podklasy tableView- @property (nonatomic, strong) MultiTableHoldingView * theParentViewController; Błędy -i get2: Właściwość z atrybutem zatrzymania (lub silnym) musi być wyłączona typ obiektu i nieznana nazwa typu "Widok tabeli MultiTableHolding". pomysły? – SimonTheDiver