Benutzerdefinierte Ansicht oberhalb der Tab-Leiste Controller / Navigation Controller hinzufügen?

8

Ich habe den folgenden Code versucht, um zu erreichen, dass die benutzerdefinierte Ansicht über dem Tab-Bar-Controller angezeigt wird (der zufällig einen Navigations-Controller in allen seinen Tabs hat).

Das Problem ist, dass es über der Navigationsleiste liegt und die Navigationsleiste nach unten verschoben werden soll.

Ich habe versucht, den Rahmen des Tab-Bar-Controllers zu setzen, aber das hat ihn überhaupt nicht bewegt.

%Vor%

Irgendwelche Ideen?

    
xil3 25.07.2011, 19:47
quelle

6 Antworten

7

Es gibt keinen wirklich guten Weg, dies zu tun. Die verschiedenen Subviews von UINavigationController und UITabBarController sind sowohl privat, und mit ihnen zu verwirren versucht, ist wahrscheinlich nicht richtig funktioniert. Und Apple nicht geben uns die Werkzeuge „Container“ Ansicht-Controller zu erstellen, so dass Sie nicht einbetten leicht die UINavigationController / UITabBarController in einer anderen Ansicht-Controller oder neu erstellen UINavigationController / UITabBarController selbst.

Ihre beste Wette ist wahrscheinlich zu gehen und versuchen, Ihren eigenen „Container“ View-Controller zu erstellen, und befassen sich mit ein paar Dinge nicht richtig arbeiten. Insbesondere die darin enthaltenen Ansicht Controllers parentViewController wird nil zurück und daher verschiedene andere Dinge auf dem enthaltenen View-Controller oder seine Substeuergerate gebrochen werden (zB interfaceOrientation Eigenschaft wird falsch sein, presentModalViewController:animated: möglicherweise nicht richtig funktionieren ). Andere Dinge können auch gebrochen werden.

Oder Sie könnten warten, bis einige zukünftige Version von iOS tatsächlich Unterstützung für uns hat Container View-Controller (wenn überhaupt), zu erstellen und dann nur diese Version unterstützen und höher.

    
Anomie 01.08.2011, 18:38
quelle
21

Fügen Sie die Ansicht dem TabBarController hinzu. View selbst:

%Vor%     
Sebyddd 01.10.2014 15:09
quelle
7

Sie könnten einfach Fenster zu Fenster hinzufügen:

%Vor%     
Borut Tomazin 09.01.2013 10:21
quelle
0

Meinst du oben wie vertikal über dem Rest des Inhalts?

Oder oben, wie oben auf den Rest des Inhalts zu sitzen?

Es gibt PresentModalViewController: animiert: aber ich bezweifle, dass Sie das wollen?

    
Zhang 26.07.2011 03:18
quelle
0

Ich kann nichts sagen, also schreibe ich das hier für jeden anderen, der auf diese Seite kommt. Die Antwort von Borut, die abgelehnt wurde, war tatsächlich die leichtere und richtigere Antwort.

Er hat dir einfach nicht die richtigen Anweisungen gegeben. Sie müssen die benutzerdefinierte Ansicht dem Fenster für Ihre Anwendung hinzufügen, die in Ihrem AppDelegate deklariert ist (in Mono wäre dies AppDelegate.Window.Add (myView), nicht im Fenster der aktuellen Ansicht, das null ist (zB this.View.Window).

Das funktioniert gut in Xamarin / Mono und ich kann nicht sehen, warum es für Obj-C im richtigen Code nicht dasselbe wäre.

    
xShinies 28.01.2014 10:14
quelle
0

Sie können so etwas tun:

%Vor%     
Aleksey Shevchenko 20.01.2018 10:54
quelle