2011-12-30 11 views
5

Próbuję wykonać tabelę drążenia za pomocą scenorysów w aplikacji Pasek kart. Mam problem z wypracowaniem , jak uzyskać każdy wiersz w tabeli głównej, aby wskazać inne tabele.Wywierć tabelę w scenorysach

To jest kod, którego użyłem do wykrycia wyboru rzędu.

-(void)tableView: (UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *__strong)indexPath { 
    TableViewController *table = [self.storyboard instantiateViewControllerWithIdentifier:@"table"]; 
    [self.navigationController pushViewController:table animated:YES]; 

} 

Jak kontynuować, proszę?

Odpowiedz

12

Prawdziwym pięknem UIStoryBoard są segues. 1. Możesz połączyć jedną prototypową komórkę push push z innym kontrolerem widoku tabeli. 2. Możesz połączyć jedną prototypową komórkową pętlę przełączania z powrotem do siebie, aby wykonać drążenia.

[self performSegueWithIdentifier:@"segueID" sender:MyObject]; 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if([segue.identifier isEqualToString:@"segueID"]) segue.destinationViewController.chosenCell = sender; 
} 

Jeśli segue jest od kliknięcia komórek, nadawca jest to, że komórki i można dostać to indexpath od stołu, i przekazać nowe informacje do nadchodzącego kontrolera widoku. Jeśli chcesz, aby komórka wykonywała różne ścieżki po kliknięciu, zachowaj metodę didSelectRowAtIndexPath i wywołaj performSegueWithIndetifier, aby można było wybrać lewą lub prawą stronę.

Tutorial: http://jleeiii.blogspot.com/2012/05/uistoryboard-power-drill-batteries.html

GitHub: http://www.github.com/jllust/UIStoryboardExamples

+0

Czy znasz samouczek lub książkę opisującą, jak to zrobić? – MacUser

+0

Pewnie, właśnie tu napisałem. Nadzieja, która pomaga. http://jleeiii.blogspot.com/2012/01/uistoryboard-power-drill.html – JLust

+0

Najlepszy samouczek na temat dzięki za ten wysiłek – MacUser

2

Byłem bardzo sfrustrowany tym, ponieważ storyboardy z tablebookami naprawdę nie są uwzględnione GDZIEKOLWIEK. Dosłownie prawie wyciągnąłem włosy, próbując to rozgryźć. Więc moja frustracja to twoje szczęście!

Porównując swój kod do kopalni, twój wygląda dobrze poza faktem, że w początkowej metodą didSelectRowAtIndexPath:, masz *_strong, , które nie powinny mieć część _strong. Powinno to wyglądać tak: (NSIndexPath *)indexPath {

Dodatkowo należy zachować ostrożność, gdy odwołujesz się do obiektu instantiateViewControllerWithIdentifier w programie Interface Builder. Przypadkowo wypełniłem nazwę zmiennej instancji w "TITLE" zamiast "IDENTIFIER"

Mam nadzieję, że to pomoże. Całkowicie rozumiem twoją frustrację.

+0

Dzięki za wskazówki, w jaki sposób można uzyskać w głównej wierszu tabeli 1 do punktu do jednego stołu i rzędu 2 do punktu do drugiego? – MacUser

1

W scenopisie, jeśli treść to Komórki statyczne, możesz przeciągnąć ctrl z określonego wiersza do kontrolera nawigacyjnego. Następnie podłącz kontroler nawigacyjny do następnej tabeli. Spójrz na ten zrzut ekranu. http://cl.ly/1V2y0v202y390U0A351x

Domyślam się, że trzeba progromatycznie zrobić coś podobnego, przejść na kontroler NavigationController, który ma kontroler widoku tabeli w widoku głównym.

+0

Poprawione http://www.iphonesdkarticles.com/2009/03/uitableview-drill-down-table-view.html – MacUser