setNavigationBarHidden: YES funktioniert nicht mit searchDisplayController

8

Ich verwende den folgenden Code, um meine navigationBar im detailViewController auszublenden (meine zweite Ansicht), und es funktioniert einwandfrei, wenn ich auf eines meiner Objekte vom MasterViewController (meiner ersten Ansicht) tippe.

%Vor%

Allerdings, wenn ich die Tabelle Liste im MasterViewController mit searchDisplayController filtern und tippen Sie auf ein beliebiges Objekt aus dem Ergebnis, die navigationBar in der Detailansicht wird nicht versteckt ...

Muss ich die Navigationsleiste ausblenden, wenn ich den searchDisplayController verwende?

für Debug, ich setze den Breakpoint auf der Zeile von setNavigationBarHidden: YES, und auch wenn Ich gehe über Suchergebnis zum detailViewController, die Anwendung trifft die Zeile ..

    
sora 21.01.2012, 03:59
quelle

5 Antworten

13

Sie shuold setzen [self.navigationController setNavigationBarHidden: YES]; in viewWillLayoutSubviews Funktion.wie folgt:

%Vor%

es funktioniert.

    
jt6562 04.03.2014, 10:45
quelle
1

Sie sollten diese Methode ausprobieren:
In diesem Controller, in dem Sie UISearchController *searchController deklariert haben, sollten Sie zwei Methoden implementieren (nur als Beispiel):

%Vor%

Der obige Code kann Unterschiede aufweisen. Hauptpunkt in hidesNavigationBarDuringPresentation -Eigenschaft (iOS 8.0 und höher). Versuche, damit zu spielen, und wende dich an hidesNavigationBarDuringPresentation = NO , bevor du einen neuen Controller drückst. Nach diesen Manipulationen habe ich Gewinn gemacht: wenn UIViewController gedrückt wird, wird der Setzer setNavigationBarHidden:YES arbeiten

    
CFIFok 16.08.2016 11:35
quelle
0

Wenn Sie die Navigationsleiste ausblenden möchten, deaktivieren Sie in Ihrem MainWindow-Xib die Option "Navigationsleiste anzeigen" des Navigations-Controllers.

Dies wird die Navigationsleiste in Ihrem gesamten Projekt ausblenden. Wenn Sie die Navigationsleiste in einem beliebigen Controller anzeigen möchten, legen Sie in der ViewDidLoad-Methode dieses Controllers die Option "NavigationBar Hidden = NO" fest.

    
Apple 21.01.2012 04:17
quelle
0

Sie sollten den Display Controller auf irgendeine Weise hacken, um die eingebaute navigationBar zu verbergen.

Hier ist die Antwort:

Ссылка

    
Hashem Aboonajmi 16.06.2013 08:44
quelle
0

Dies

%Vor%

verursacht Layoutprobleme, daher habe ich den folgenden Code verwendet. Funktioniert gut für mich.

%Vor%     
ymutlu 17.04.2015 17:26
quelle