Zwei TableView Controller in einem View

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

  • Ah stimmt :) Danke :)

    Noch eine Frage:

    Wenn ich mehrere Sections habe und in der Funktion:

    Quellcode

    1. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath


    die verschiedenen Sections ansprechen möchte, kann ich das nicht tun, weil ich da


    if (section == 0) ...


    nicht abfragen kann.
    Wie kann ich für verschiedene Sections unterschiedliche cellForRowAtIndexPath Funktionen anwenden?
  • Hallo Leute,

    und nochmals brauche ich eure hilfe :P

    Ich weiß, dass ich über die Methode:

    Quellcode

    1. -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


    mit den Daten der Selektierten Zeile arbeiten kann.

    Wie kann ich aber bspw. implementieren, dass beim selektieren einer Zeile im linken TableView, sich die Beschriftung einer Zeile des rechten TableViews ändert?

    Besten Dank,
    Philipp
  • matz schrieb:

    Du musst die Datasource vom rechten TableView beim Klick auf die Zelle des linken TableView's ändern.

    Konkret zum Beispiel ein Objekt zum Array hinzufügen.

    Anschließend noch dein rechts TableView reloaden.


    Naja, wenn er nur eine Zelle ändert, dann sollte es aber auch reichen die eine Zelle neu zu laden und nicht immer gleich ein ganzes reloadData aufzurufen.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Hallo Leute,
    ich bin inzwischen schon sehr viel weiter gekommen habe aber zu folgendem Thema noch ne Frage:

    Ich habe ein NSMutableArray, dass ich in meinem ViewController.m definiere und dann einen Synthesize mache.
    Nun möchte ich, dass beim Klick auf eine Zeile des linken TableViews, sich die Zeilen des rechten TableViews ändern.
    Dazu wähle ich das MutableArray als Datenquelle für den rechten TableView und muss beim Klick auf die Zeile, den Inhalt der Zeile an das Array übergeben.

    Das kann ich doch in der Methode:

    Quellcode

    1. -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


    oder?

    Ich versuche es mit:

    Quellcode

    1. [self.t2Section0title addObject:[self.t1Section0Interfaces objectAtIndex:indexPath.row]];


    t2Selection0title ist das MutableArray, dass als Datenquelle für den rechten TableView gilt und t1Section0Interfaces ist das NSArray, indem der Inhalt des linken TableViews liegt, der in das rechte übertragen werden soll.

    Nur leider füllt sich mein MutableArray t2Section0title nicht. Woran kann das liegen?
  • Quellcode

    1. //
    2. // ViewController.m
    3. // TableViewSample
    4. //
    5. //
    6. #import "ViewController.h"
    7. @interface ViewController ()
    8. @property (nonatomic, strong) NSMutableArray * dataSource1;
    9. @property (nonatomic, strong) NSMutableArray * dataSource2;
    10. @end
    11. @implementation ViewController
    12. @synthesize tableView1 = _tableView1;
    13. @synthesize tableView2 = _tableView2;
    14. @synthesize dataSource1 = _dataSource1;
    15. @synthesize dataSource2 = _dataSource2;
    16. - (void)viewDidLoad
    17. {
    18. [super viewDidLoad];
    19. [self setDataSource1:[[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", @"4", nil]];
    20. [self setDataSource2:[[NSMutableArray alloc] initWithObjects:@"9", @"8", nil]];
    21. // Do any additional setup after loading the view, typically from a nib.
    22. }
    23. - (void)didReceiveMemoryWarning
    24. {
    25. [super didReceiveMemoryWarning];
    26. // Dispose of any resources that can be recreated.
    27. }
    28. #pragma mark - UITableViewDataSource
    29. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    30. {
    31. return 1;
    32. }
    33. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    34. {
    35. if (tableView == [self tableView1])
    36. {
    37. return [[self dataSource1] count];
    38. }
    39. else if (tableView == [self tableView2])
    40. {
    41. return [[self dataSource2] count];
    42. }
    43. return 0;
    44. }
    45. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    46. {
    47. static NSString * CellIdentifier = @"Cell";
    48. UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    49. if (cell == nil)
    50. {
    51. cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    52. }
    53. if (tableView == [self tableView1])
    54. {
    55. [[cell textLabel] setText:[[self dataSource1] objectAtIndex:[indexPath row]]];
    56. }
    57. else if (tableView == [self tableView2])
    58. {
    59. [[cell textLabel] setText:[[self dataSource2] objectAtIndex:[indexPath row]]];
    60. }
    61. return cell;
    62. }
    63. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    64. {
    65. if (tableView == [self tableView1])
    66. {
    67. [[self dataSource2] addObject:[NSString stringWithFormat:@"added%d", [indexPath row]]];
    68. [[self tableView2] reloadData];
    69. }
    70. }
    71. - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
    72. {
    73. NSString * title = nil;
    74. if (tableView == [self tableView1])
    75. {
    76. title = @"TableView1";
    77. }
    78. else if (tableView == [self tableView2])
    79. {
    80. title = @"TableView2";
    81. }
    82. return title;
    83. }
    84. @end
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von matz ()

  • So siehts noch schöner aus

    Quellcode

    1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. if (tableView == [self tableView1])
    4. {
    5. [[self dataSource2] addObject:[NSString stringWithFormat:@"added%d", [indexPath row]]];
    6. NSIndexSet * set = [NSIndexSet indexSetWithIndex:0];
    7. [self.tableView2 reloadSections:set withRowAnimation:UITableViewRowAnimationAutomatic];
    8. }
    9. }