1

Ich habe alle meine Benutzeroberfläche in Code erstellt (seit ich Flyout Navigation verwende, die nicht mit Storyboards zu arbeiten scheint). Ich habe einen UINavigationController namens MainController und eine Reihe von View-Controllern. Wenn ich die App mit dem Root-Controller starte, wird die Navigationsleiste einwandfrei angezeigt.Xamarin iOS: Navigationsleiste wird nach dem Drücken der Ansicht nicht angezeigt

Wenn ich programmatisch ein neuer Viewcontroller ArticleDisplay genannt schaffen, ich erstellen und als solche drücken (innerhalb MainController):

public void Open_Article(Post post) 
{ 
    ArticleDisplay vw = new ArticleDisplay(this); 
    vw.SetPost(post); // to set the iOS 

    this.PushViewController(vw, true); 
} 

Wenn ich die app ausführen und den ArticleDisplay Controller angezeigt werden, ich habe nicht einen Navigationsleiste (as you can see in this image), obwohl der Hauptansicht-Controller eine Navigationsleiste hat. Versuche, Dinge wie this.SetNavigationBarHidden(false,true) zu tun, nichts tun.

Was kann ich tun, damit die Navigationsleiste angezeigt wird? Ich bin mir sicher, dass ich es irgendwo vermassele. Ich brauche es, damit ich dem Benutzer erlauben kann, zu dem Controller zurückzukehren, in dem er vorher war.

+1

Es könnte sein, dass der Flyout-Navigationscontroller derjenige ist, der einen Navigationsstapel enthält. Überprüfen Sie, ob der NavigationController einen Wert innerhalb des Push-Controllers hat. Es gibt eine Eigenschaft namens ViewControllers, die den Navigationsstapel anzeigt. – Pilatus

+0

versuchen .. this.PushViewController (neue UINavigationController (vw), true) –

+0

@MohibSheth Ich hatte das versucht, und es gab mir einen Fehler, der besagt, dass es UINavigationControllers für dieses Argument nicht akzeptieren kann. – JaykeBird

Antwort

0

Nachdem in FlyoutNavigation suchen es scheint, dass es möglich ist, ein Storyboard

Using storyboard

Versuchen zu verwenden, das Herunterladen eines Push-Segment zwischen dem Knopf und dem zweiten Blick das Beispielprojekt (as pointed out by Mohib Sheth) und erstellen.

Mit dem PushViewController Methode

Wenn Sie weiterhin die PushViewController Methode stellen Sie sicher, verwenden möchten, dass Ihre ursprüngliche Ansicht (wie nach einem Klick auf einem FlyOutNavigation Artikel dargestellt) ein NavigationController ist. Diese NavigationController steuert den Navigationsstapel für die aktuelle Seite.

Jetzt, da die ViewController von einer NavigationController umschlossen ist, können Sie eine Schaltfläche hinzufügen oder rufen Sie einfach die NavigationController.PushViewController Methode.

PushView.TouchDown += (evt, args) => 
{ 
    NavigationController.PushViewController(new UIViewController(), true); 
}; 

Ich hoffe, das hilft!

+0

Sie haben mich ein bisschen Inspiration zu geben schau etwas mehr an, also werde ich bestimmt einige Dinge ausprobieren, wenn ich morgen die Chance dazu habe. Außerdem wusste ich nicht, dass es mit Storyboards funktionieren könnte! Für dieses aktuelle Projekt bin ich bereits so weit in den Fuchsbau gegangen, dass ich kein Storyboard habe, dass ich Angst habe, mein gesamtes Projekt auseinander zu reißen, nur um das umzusetzen. Wenn es um zukünftige Projekte geht, werde ich mir das sicherlich mehr ansehen!Wenn ich die Dinge herausfinden kann, werde ich diese Antwort akzeptieren. – JaykeBird

Verwandte Themen