8

Ich bin relativ neu in der Objective-C-Entwicklung und bin auf ein Problem gestoßen, für das ich keine Lösung finden kann.Der Navigationstitel wird nicht mit dem Registerkarten-Controller angezeigt, aber die "Zurück" -Navigation funktioniert

Ich habe eine Table View Controller, mit zwei Prototypen Zellen darauf, die gut bevölkern. Diese Table View Controller ist eine von drei Tab Views, und die View, die an die Tab Views sendet, hat eine Navigation Controller. Dies bedeutet, dass die Ansichten innerhalb der Tab Views auch eine Navigation Leiste aufweisen. Die Leiste funktioniert einwandfrei, wenn der "Zurück" -Knopf wie erwartet funktioniert und die Leiste in Position ist. Allerdings wird (zumindest in der Listenansicht) die Navigation Bar nicht vollständig erkannt - ihr Titel erscheint nicht und die Tabellenzellen beginnen direkt unterhalb der Statusleiste und nicht unterhalb der Navigationsleiste.

Hier ein paar Screenshots, das Problem zeigt: what appears in Xcode (what I expect to happen) was in Xcode erscheint what actually appears on my testing device (iPhone 4, iOS 7.0.4) Und dann auf dem Gerät (was ich geschehen erwarten), ist es das, was tatsächlich erscheint - die Zurück-Taste an ihrem Platz und funktioniert gut , aber kein Titelfeld, und die Tabellenzellen beginnen zu hoch.

Ich habe versucht, das Hinzufügen Navigation Bar ‚s und Navigation Items, und während ein Navigation Item Hinzufügen ermöglicht es mir, auf in Xcode einen Titel zu setzen, ist es immer noch nicht auf dem Gerät in der Prüfung erscheinen. Ich habe auch versucht, ein weiteres Navigation Controller kurz vor dieser Ansicht hinzuzufügen, aber das hat das Problem auch nicht gelöst, und es verursachte Navigationsprobleme weiter unten in der Heirachy.

Ich hoffe, ich war klar genug, bitte sagen, wenn ich weitere Informationen posten muss - ich bin relativ neu bei Xcode und so nicht sicher, was genau anwendbar ist und was nicht. Vielen Dank!

Antwort

22

bitte diesen Code versuchen, es könnte Ihre Tabellenposition

// Since in iOS7 the nav bar is translucent by default, so the table view starts at (0,0) 
// you can either disable the translucent, which i don't recommend unless you really want to 
// or just add 64 pixel on the top of your table view 
[self.YOURTABLEVIEW setContentInset:UIEdgeInsetsMake(64, 0, 0, 0)]; 

und um den Titel zu beheben, versuchen Sie bitte diese

self.tabBarController.navigationItem.title [email protected]"YOUT TITLE NAME"; 

Hoffnung, dass ..

+0

Vielen Dank für Ihre Antwort (und bearbeiten), @Xu! Das 'setContentInset' hat funktioniert, aber leider hat der' navigationItem.title' Teil nicht funktioniert - ich habe immer noch nur den Zurück-Button, aber keinen Titel. – edparry

+0

@edparry Würdest du mir zeigen, wie du den Navigationscontroller hinzufügst? Ich habe vor Ort getestet, der Titel funktionierte für mich. –

+0

Hi @Xu - Ich habe eine Imagebroschüre meines Storyboards zu Imgur [hochgeladen] (http://i.imgur.com/5kCWXoN.png) und kommentiert, um zu zeigen, wie alles zusammenpasst. Das Problem, das ich beschreibe, ist mit den drei Ansichten, die mit dem 'Tab View Controller 'verknüpft sind - hoffe, dass es Sinn macht. – edparry

0

ich das gleiche hatte hilft Problem, aber was ich getan habe, um dieses Problem zu erstellen, war, dass meine Schaltflächen-Aktion mit der eigentlichen Tabelle selbst und nicht mit der Tabelle Controller verbunden war. Ich habe die modale Aktion entfernt und eine neue Aktion für den Tabellencontroller erstellt und das Problem behoben.

2

Angenommen, Ihre Hierarchie als

NavigationController -> ViewController -> TabBarController -> ViewController1 
                  -> ViewController2 
                  -> ViewController3 

Wenn Sie in viewcontroller1 Navigationspunkt ausblenden möchten, fügen Sie die folgende Zeile

self.navigationController.navigationBarHidden = YES; 

Wenn Sie Titel in viewcontroller2, Fügen Sie die folgende Zeile angezeigt werden soll in

self.navigationController.navigationBarHidden = NO; //add this if you hide navItem viewcontroller1 
[self.parentViewController.navigationItem setTitle:@"Title"]; 

Wenn Sie Backbutton ausblenden und Titel in Viewcon anzeigen möchten troller3, Fügen Sie die folgende Zeile

self.navigationController.navigationBarHidden = NO; 
[self.parentViewController.navigationItem setTitle:@"Contacts"]; 

self.parentViewController.navigationItem.hidesBackButton=YES; 

Fügen Sie diese Zeilen zu ViewDidAppear Verfahren statt viewDidLoad, wenn Sie Probleme haben, inshowing wenn Registerkarten wechseln.

0

Versuchen Sie, auf die Navigationsleiste von Ihrem Storyboard oder Ihrer Feder aus zu klicken.

enter image description here

Dann wird Ihr Eigentum an der Immobilie hinzuzufügen.

enter image description here

Verwandte Themen