2012-02-21 8 views
8

Mam więc UITableView, a komórki są połączone z UIStoryboardSegue w celu otwarcia nowego kontrolera UIViewController. Po kliknięciu na komórkę prepareForSegue zostaje wywołane i wszystko działa poprawnie.iOS - UIStoryboardSegue wykrywanie komórki tabeli i otwarcie viewController?

PYTANIE: W poniższej metodzie, jak mogę się dowiedzieć, jaka jest wartość indexPath wybranej komórki w moim TableView?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    ObjectDetailViewController *mvc = [segue destinationViewController]; 
    // PassingObject *obj = [self.array objectAtIndex: ? ]; 
    mvc.passingObject = obj; 
} 

Odpowiedz

18
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Assume self.view is the table view 
    NSIndexPath *path = [self.tableView indexPathForSelectedRow]; 
    DetailObject *detail = [self detailForIndexPath:path]; 
    [segue.destinationViewController setDetail:detail]; 
} 
+0

Dzięki, zmieniłem sposób pracy ze stalówek na używanie scenorysów i było to wyzwanie, ponieważ nie ma dobrej dokumentacji. Czy jest dobry blog lub samouczek do scenorysów? – aryaxt

+1

Oto dobry samouczek dotyczący Twojego pytania: [Raywenderlich] (http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2). Możesz również sprawdzić ich inne samouczki. –

+1

powyższe jest prawdopodobnie jedynym przyzwoitym tutorialem. Posiadam nawet kilka książek IOS5, które ledwo zarysowują powierzchnię storyboardów. Im prostszy interfejs użytkownika, tym więcej scenorysów wydaje się być korzystnych. Najbardziej niestandardowe, tym trudniejsze. – DJPlayer

6

Zamiast [self.tableView indexPathForSelectedRow] (spójrz na odpowiedź DJPlayer) można użyć [self.tableView indexPathForCell: nadawcy], ponieważ nadawca jest wybrana komórka w tej sprawie.

Powiązane problemy