2010-11-30 15 views
0

Hallo
Ich möchte einen NSInteger zu einem TableView-Controller übergeben und dann verwenden, um ein Badge festzulegen.
In diesem Fall ist der NSInteger, den ich übergeben möchte, die Anzahl der Zeilen in einer TabelleView, zurückgegeben mit Core Data (numberOfRows).Übergeben Sie NSInteger an einen TableView-Controller

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSInteger numberOfRows = 0; 

    if ([[fetchedResultsController sections] count] > 0) { 
     id NSFetchedResultsSectionInfo sectionInfo = [[fetchedResultsController sections] objectAtIndex:section]; 
     numberOfRows = [sectionInfo numberOfObjects]; 
    } 

    return numberOfRows; 
}

Wie kann ich einen anderen NSInteger erklären und es dann zu einem Tableview-Controller übergeben? in der zweiten Tabelle View-Controller

Danke,
Matthew

+0

Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstanden habe, aber würden Sie nicht einfach den obigen Code verwenden? – Rog

+0

Sorry für die Verzögerung ... Dieser Code oben ist, dass ich in meinem Hauptcontroller, Kerndaten verwalten. Ich möchte die numberOfRows Nummer an einen anderen TableView Controller übergeben, um eine Methode zu setzen ... Ich habe versucht mit NSUserDefaults und funktioniert, aber die Zahl wird nicht jedes Mal aktualisiert, wenn sich die Anzahl der Zeilen in der Tabellenansicht ändert ... Können Sie mir helfen? ? – matteodv

Antwort

1

Es klingt wie Sie zwei Controller geholt Ergebnisse benötigen. Der erste FRC würde die Tabelle selbst verwalten, und der zweite FRC würde die existierende Anzahl von Zeilen in den Daten der ersten Tabelle berechnen.

Sie müssten den zweiten Tableview-Controller als Delegat für beide FRC zuweisen und dann in den Delegate-Methoden testen, welcher Controller eine Änderung ausgelöst hat und die entsprechenden Maßnahmen ergreifen.

+0

Können Sie mich beschreiben, wie kann ich das tun? Wie kann ich diesen Delegierten zuweisen? – matteodv

+0

Der Delegat ist normalerweise nur der Tableview-Controller. Sie würden den Controller nur der Delegate-Eigenschaft des FRC zuweisen. Details finden Sie im Protokoll NSFetchedResultsControllerDelegate. – TechZen

+0

Danke für Ihren Kommentar ... Ich muss dieses Protokoll lesen, aber vorher habe ich eine Singleton-Klasse erstellt, um diese Nummer zu übergeben. Es funktioniert, aber wenn ich die Anzahl der Zeilen ändern, löschen oder neue Zeilen hinzufügen, wird diese Nummer nicht aktualisiert ... Wie kann ich diese Nummer mit einer Singleton-Klasse aktualisieren? Das ist mein Code: http://pastie.org/1345205 – matteodv

Verwandte Themen