Force-reload der UITableView - objective-c
Habe ich eine tabBar application. Es gibt 2 UIViewControllers A und B. UIViewController B hat UITableView. Ich nenne die Methode in Einem UIViewController von B UIViewController: [b someMethod:someObject];
Hier ist der code:
-(void) someMethod:someObject
{
[tableViewDataArray addObject: someObject];
[tableView reloadData];
}
Aber UITableView nicht neu laden, bis ich wechseln UIViewController, B;, Wie es neu laden ohne zu schalten? Wenn dies möglich
Sind Sie sicher, dass die UIViewController B-Objekt ist nicht null innerhalb UIViewController Ein? Dies würde im hintergrund fehl.
B UIViewController initialisiert, da bin ich sicher. Ich meine, ich Ruf die Methode in Einem UIViewController, umgesetzt in B UIViewCOntroller
Durch die Umstellung meine ich, Wechsel der tabs in UITabBarController. Ich habe ein Haltepunkt in - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath und in [b someMethod:someObject]; Haltepunkt in someMethod funktioniert sofort. Aber der Haltepunkt in tableView:cellForRowAtIndexPath funktioniert nur, wenn ich wechseln UIViewController B mit UITabBarItem.
Warum sind Sie versuchen, dies zu tun? Ich bin nicht snarky; es könnte nur helfen, jemanden, der besser ist Ihre Frage zu beantworten, wenn der Kontext konkretisiert ein wenig.
I call method in A UIViewController from B UIViewController: [b someMethod:someObject];
Es ist nicht klar, was Sie hier bedeuten. Sie sagen, Sie rufen eine Methode in "A", aber Sie sind eindeutig eine Nachricht sendet, um "B". Es ist auch nicht klar, was du damit meinst: UITableView doesn't reload until I switch UIViewController to B
UIViewController ist eine Klasse. Es schaltet nicht zu nichts. Geben Sie uns mehr Beispiel-code würde uns helfen, eine Menge.B UIViewController initialisiert, da bin ich sicher. Ich meine, ich Ruf die Methode in Einem UIViewController, umgesetzt in B UIViewCOntroller
Durch die Umstellung meine ich, Wechsel der tabs in UITabBarController. Ich habe ein Haltepunkt in - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath und in [b someMethod:someObject]; Haltepunkt in someMethod funktioniert sofort. Aber der Haltepunkt in tableView:cellForRowAtIndexPath funktioniert nur, wenn ich wechseln UIViewController B mit UITabBarItem.
Warum sind Sie versuchen, dies zu tun? Ich bin nicht snarky; es könnte nur helfen, jemanden, der besser ist Ihre Frage zu beantworten, wenn der Kontext konkretisiert ein wenig.
InformationsquelleAutor Timur Mustafaev | 2011-09-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre beste Lösung ist, um eine Schaltfläche auf der Symbolleiste für das hinzufügen und erfrischend und machen eine Funktion namens
add()
und verbinden Sie es mit der Taste. und im inneren gibt es Sie :Ich hatte ein ähnliches Problem und das hat tatsächlich funktioniert, das sollte helfen : Wie Laden ein UITableView, Während ich Es bei der Suche
InformationsquelleAutor ahoura
UITabBarController
laden nicht alle seine tabs' Ansichten, bis Sie tatsächlich benötigt werden, so dass Ihre Tabelle anzeigen vielleicht gar nicht existiert (d.h. istnil
), bevor Sie wechseln Sie zu der Registerkarte, die es enthält.Während Sie könnte Kraft des view-Controllers zu laden Ihre view-Hierarchie, indem Sie den Zugriff auf Ihre
view
- Eigenschaft, würde ich es nicht empfehlen. Was ist der Sinn des Nachladens eine unsichtbare Tabelle anzeigen irgendwie?B UIViewController und UITableView ist nicht null.
Immer noch, als
cellForRowAtIndexPath:
ist nur für sichtbare Zeilen, macht es vollkommenen Sinn, dass es nicht heißt, wenn die gesamte Tabelle-Ansicht nicht sichtbar.Ich sehe. So gibt es eine Lösung wie man dieses Problem lösen?
Lösen, was? Sehe ich nicht wirklich das problem ist hier, warum müssen Sie die Tabellen-Ansicht zu laden-Zellen, wenn es nicht sichtbar ist?
InformationsquelleAutor omz