UiTableView/DetailView: Wie geht das?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UiTableView/DetailView: Wie geht das?

    Habe mich, nachdem das Gerüst für die Application steht, nun meiner ersten Tabelle zugewandt. Das Grundgerüst besteht aus einem Tabbarcontroller, welcher in den ersten beiden Tabs einen NavigationController lädt. Dieser lädt wiederum eine UiTableView.
    Dieser soll je nach ausgewählter Zelle einen anderen DetailView laden. Doch wie mache ich das?
    Hoffe auf Hilfe, und bedanke mich bei allen schon mal im Vorraus;)
    Max
    Live is Short, do the best and live your Life.
  • Quellcode

    1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. switch (indexPath.row)
    4. {
    5. // row 0 -> DetailViewController1 anzeigen...
    6. case 0:
    7. {
    8. DetalViewController1 *controller = [[DetalViewController1 alloc] initWithNibName:@"DetalView1" bundle:nil];
    9. [self.navigationController pushViewController:controller animated:YES];
    10. [controller release];
    11. }
    12. break;
    13. // row 1 -> DetailViewController2 anzeigen...
    14. case 1:
    15. {
    16. DetalViewController2 *controller = [[DetalViewController2 alloc] initWithNibName:@"DetalView2" bundle:nil];
    17. [self.navigationController pushViewController:controller animated:YES];
    18. [controller release];
    19. }
    20. break;
    21. // row 2 -> DetailViewController3 anzeigen...
    22. case 2:
    23. {
    24. DetalViewController3 *controller = [[DetalViewController3 alloc] initWithNibName:@"DetalView3" bundle:nil];
    25. [self.navigationController pushViewController:controller animated:YES];
    26. [controller release];
    27. }
    28. break;
    29. // usw.
    30. default:
    31. break;
    32. }
    33. }
    Alles anzeigen

    So könnte es funktionieren. Werde das nächste mal erst mal selber im Forum suchen.
    Apropos: Die default Anweisung kann also wegfallen, oder?
    Live is Short, do the best and live your Life.
  • Wenn du keine Section hast, sprich der Style des TableViews "Plain" ist, reicht es einfach Code wie hier zu verwenden.

    Quellcode

    1. DetailController* detailController = [[DetailController alloc]init];
    2. detailController.textLabel = [dataArray objectAtIndex:indexPath.row];[detailController release];
    3. [self.navigationController pushViewController:secondViewController animated:YES];

    Du must beachten, DetailController ist eine Klasse mit eigener XIB. Nach meinem Beispiel hast du ein Array "dataArray" welches mit Strings befüllt ist. Diese werden dann in dem DetailView im TextLabel "textLabel" angezeigt.
    Gruß

    Robin