Ist es nicht möglich, UISearchBar im UITableView-Header zu platzieren?

8

Ich versuche das zu erreichen:

  

Betrachten Sie eine Tabellenansicht mit der Suchleiste in der Kopfzeile. Die Tabellenansicht wird angezeigt   wird immer dann aktualisiert, wenn die Zeichenfolge durchsucht wird.

Ich habe 2 Klassen

TableViewController (UIViewController-Unterklasse)

enthält UITableView - Zeigt die Tabelle an, deren

  

Header-Ansicht der Tabelle wird aus der Header-Klasse (UIToolBar-Unterklasse)

geladen

.

Header (Header des UITableView)
- Enthält UISearchBar und seinen Delegaten

Das

  

UISearchBarDelegates ruft eine Funktion in TableViewController

zurück

das ruft

%Vor%

was zum Absturz der App

führt

Der Funktionsaufrufrahmen lautet wie folgt

%Vor%

Die ReloadSection verursacht einen Absturz der App. Gibt es irgendwelche Ideen, warum das so passiert?

  

Liegt das daran, dass die Delegatfunktion auf dem Stapel noch aktiv ist?   während der Header der Tabellenansicht neu geladen wird ??

Ich ändere nichts, was mit der Tabellenansicht zu tun hat (keine Änderung in der Anzahl der Zeilen oder Abschnitte). Alles was ich versuche ist, einfach die Tabellenansicht neu zu laden.

Bearbeitet: Ich versuche, all diese Dinge in iPad zu tun, die ein Popover während der Verwendung von UISearchDisplayController bietet, die ich nicht verwenden möchte. Ich habe bereits eine Tabellenansicht, die ich aktualisieren möchte, sobald der Text eingegeben wird und die Schaltfläche Suche wird mit der Suche delegieren. Das einzige Problem ist, dass wenn ich [UITableView reloadSection:] in der Suche Delegate von UISearchBar (UISearchBar befindet sich in der Kopfzeile der UITableView, die ich neu laden will) aufrufen, die App abstürzt.

    
prajul 12.03.2012, 19:11
quelle

1 Antwort

1

Ich konnte das Problem beheben, indem ich den TableViewHeader benutze, anstatt den Tabellenansichtsheader mithilfe der Delegate-Methode des TableView-Headers zu laden, wo ich einen Zeiger verwendete, der mit dem Header der Tabellenansicht initialisiert wurde.

    
prajul 22.03.2012, 10:36
quelle