5

Ho un'applicazione funzionante per iOS7 e inferiore a
Ho usato UISearchDisplayController per la ricerca nella tabella.
La visualizzazione dell'intestazione non viene visualizzata dopo la ricerca iOS8 + XCode6

Problema:
Dopo view search intestazione non è visualizzare in iOS 8.
come display nelle immagini sottostanti.

Prima ricerca: enter image description here

Dopo la ricerca: enter image description here


Ho provato ad utilizzare UISearchController ma anche avere lo stesso problema ho usato questo codice link

aggiungo sotto il codice in T PSMastreViewController.m

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIView *v = [[UIView alloc] init]; 
    v.backgroundColor = [UIColor greenColor]; 
    return v; 
} 


ho controllato che delegato - (UIView *) tableView: (UITableView *) tableView
viewForHeaderInSection: (NSInteger) sezione
non è chiamato nel caso di iOS 8.
Edit:
quello che ho capito è solo UITableViewDataSource delegato è chiamato, UITableViewDelegate non ha fatto.
prega di non che ho impostato sia delegato in viewDidLoad
Domanda:
1] E 'un cambiamento di interfaccia utente?
2] Ognuno ha una patch in modo tale che il metodo delegato chiamerà con forza.

risposta

5

ho trovato risposta così a scrivere qui, può aiutare gli altri di fronte lo stesso problema

solo bisogno di aggiungere delegato heightForHeaderInSection e mostrerà vista di testa sia per searchResultsController per UISearchController (iOS 8) e searchResultsTableView per UISearchDisplayController (iOS7)

Aggiungere il codice seguente in TPSMastreViewController.m e risolverà il problema.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    return 20; 
} 

Ho trovato la mia risposta leggendo questa domanda :)
in iOS 8 UITableView heightForHeaderInSection is not optional

+0

Se le altezze di intestazione sono sempre 20, allora invece di attuare il metodo delegato basta impostare la proprietà sectionHeaderHeight del UITableView. Se avessi detto 1000 sezioni, è più veloce per la tabella moltiplicare l'altezza per 1000 per ottenere un'altezza totale rispetto a chiamare il tuo metodo delegato 1000 volte. – SomeGuy

+0

Grazie per il suggerimento, ma il mio problema è il metodo delegato viewForHeaderInSection dove nessun chiamato, dopo la ricerca e dopo l'implementazione di this viewForHeaderInSection, è chiamato. – Jageen

+0

prova questo, funzionerà anche (ed eseguirà meglio) [auto.tableView setSectionHeaderHeight: 20]; – SomeGuy