1

Ich habe einen einfachen Fall, in dem ich einen neuen Viewcontroller auf einen Navigationscontroller-Stack schiebe. Dieser VC verwendet eine Xib und hat eine UISearchBar, die auf den oberen und linken "Container" beschränkt ist, was in diesem Fall einfach die Hauptansicht ist.ViewController - Hauptansichtselemente bei (0,0) sind durch die Navigationsleiste verdeckt

Wenn ich diese VC auf den Stapel schieben, wird die Suchleiste nicht angezeigt. Dies liegt daran, dass die Navigationsleiste oben liegt und die ersten 50 Punkte des Gerätebildschirms einnimmt. (vermutlich nach der Statusleiste).

Wenn ich die automatische Layout-Beschränkung für den oberen Container auf 50 oder einen Y-Offset einstelle, der ausreicht, um der Höhe der Navigationsleiste entgegenzuwirken, wird die Suchleiste angezeigt.

Ich arbeite an einem Projekt, bei dem ich VCs auf einen Nav-Stack von UINavigationController schiebe, den ich nicht erstellt habe. Ich frage mich, welche Gründe dazu führen könnten (was ich Buggy nennen würde). Mein Verständnis war, dass jeder viewController in einem navController den Rahmen der Hauptansicht in der Anwesenheit von nav/status/tab-Balken anpassen würde. Was kann ich tun, um sicherzustellen, dass der Ursprung (0,0) am Bildschirmursprung + Statusleiste Höhe + Höhe der Navigationsleiste beginnt? Außerdem möchte ich, dass die Untergrenze meiner VC-Hauptansicht oben in der Tab-Leiste endet, die auch auf dem Bildschirm angezeigt wird. Ich habe verschiedene UIView- und ViewController-Eigenschaften untersucht und keine zufriedenstellende Lösung gefunden.

Antwort

0

Herkömmlich sind alle neuen UIViewControllers auf Storyboards getan und einige Entwickler hang zwischen der ersten und zweiten UIViewController. Der Grund dafür ist, dass durch die Implementierung eines Push-Segments, das zweite UIViewController über das erste, das zweite erben alle Eigenschaften des ersten (wie Navigationsleisten, Symbolleiste, Tab-Leiste) und es wird sofort auf dem Storyboard angezeigt.

So wird es einfacher sein, auf der zweiten UIViewController zu wissen, wie viel Platz zu UINavigation oder UITabbar zu reservieren.

Wenn Ihr VC auf einer XIB Schnittstelle erfolgt statt mit den UINavigationController gesteuert Stapeln von vorherigen Viewcontrollers angeschlossen ist, dann ich vermute, Sie nicht den Raum sehen, dass UINavigationBar und UITabBar angeblich auf Ihrer Schnittstelle in Anspruch nehmen?

Vielleicht könnten Sie versuchen, die Einschränkungen Einstellung auf 64 Punkte unter dem Top-Layout Guide (um Platz zu machen für UINavigationBar) und 49 über dem Boden Leitfaden für das Layout beginnen (um Platz zu machen UITabbar).

1

Wenn Sie xib Datei für die Gestaltung Ihrer View-Controller verwenden, sollten Sie diesen Code auf Ihre viewDidLoad Methode hinzufügen:

self.edgesForExtendedLayout = UIRectEdgeNone 

Diese Linie wird Ihre View-Controller Ansicht ist übersichtlich unter der Navigationsleiste machen.

Verwandte Themen