4 Stimmen

iPhone NavigationController - gleiche Ansicht geschoben, unterschiedliche Layouts erhalten

Ich habe eine Anwendung mit Registerkarten, wobei jede Registerkarte eine Navigationssteuerung hat. Ich verwende Hilfscode, um ein Ansicht/Controller-Paar auf den Navigationsstapel zu schieben, aber wenn ich denselben Code von zwei verschiedenen Stellen aus aufrufe, erhalte ich (erstaunlicherweise) unterschiedliche Ergebnisse. In einem Fall die Ansicht gerendert niedriger als im anderen Fall, scheinbar niedriger durch eine Navigationsleiste Höhe.

Von einer Lasche geschoben (in guter Position) :

Von einer anderen Registerkarte verschoben (zu niedrig):

Das XIB:

Hier ist der Push-Code:

+ (void)navigateToLocation:(Location*)location controller:(UIViewController*)vc withDelegate:(NSObject <LocationEditDelegate> *)delegate {

    LocationDetailsViewController *detailsController = [[LocationDetailsViewController alloc] initWithNibName:@"LocationDetailsViewController" bundle:nil];

    detailsController.title = [location display];
    detailsController.location = location;
    detailsController.delegate = delegate;

    // Push the detail view controller
    [[vc navigationController] pushViewController:detailsController animated:YES];

    [detailsController release];
}

Kann mir jemand helfen, zu verstehen, was hier vor sich geht und wie ich in diese Situation komme?

Ich habe 2.2.1 installiert und baue/verteile mit 2.2.

Da die Kommentare anscheinend nicht angezeigt werden, habe ich unten einen Kommentar eingefügt. Bearbeiten Sie dies, wenn ich etwas falsch mache:

  • Ich habe simulierte Metriken hinzugefügt, ohne dass sich das Verhalten geändert hat.

2voto

Adam Jack Punkte 590

Nachdem ich die Vorschläge ausprobiert hatte, bemerkte ich einen feinen Unterschied zwischen einer Registerkarte und den anderen. Die Ansicht wurde so angezeigt, dass sie über die Registerkartenleiste passt und unterhalb der Navigationsleiste. Bei den anderen war das nicht der Fall, ihre "Innenansicht" schien hinter die Navigation zu rutschen (ebenso wie die daraus resultierenden Unteransichten mit Problemen).

Ich weiß nicht mehr, wie diese Registerkarten erstellt wurden, aber ich habe sie neu erstellt (nachdem ich simulierte Metriken in der MainView.xib festgelegt hatte, falls das einen Unterschied machte, was ich bezweifle, da eine Registerkarte bereits "richtig" war). Wie auch immer, jetzt funktioniert alles...

Registerkarte "Problem":

alt text

Registerkarte "Arbeiten":

alt text

... siehe die "gepunktete Linie um die Innenansicht" und wo der obere Teil der gepunkteten Linie endet.

2voto

nduplessis Punkte 12054

Ich hatte dieses Problem schon vor einiger Zeit. Wenn ich mich richtig erinnere, gab es ein Kästchen "Ansicht automatisch vergrößern, um den Bildschirm zu füllen", das in IB aktiviert war. Ich glaube, es befand sich irgendwo in der Registerkartenleiste. Die Deaktivierung dieses Kästchens hat mein Problem gelöst.

0voto

Can Berk Güder Punkte 103655

Dies hängt mit ziemlicher Sicherheit damit zusammen, dass im XIB keine simulierten Metriken verwendet werden. Versuchen Sie, eine simulierte Navigationsleiste zu Ihrer XIB hinzuzufügen und sehen Sie, ob sich dadurch etwas ändert.

0voto

Hat eine der Registerkarten zu Beginn keine Navigationsleiste?

Außerdem sah es so aus, als befände sich der grüne Balken am unteren Rand im gleichen XIB wie der Rest der Ansicht, wurde aber nicht nach unten verschoben. Ist das richtig?

Wenn ja, wäre eine andere Lösung, die Lineal-Registerkarte für alle oberen Elemente aufzurufen und sicherzustellen, dass sie am oberen Rand der Ansicht fixiert sind, so dass sie nicht nach unten verschoben werden können...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X