2009-04-25 11 views
0

Ich habe eine Schaltfläche in einer Ansicht. Wenn ich darauf klicke, sollte es eine andere Ansicht laden, eine mit einem Novations-Controller. Bisher habe ich das habe, ruft die Schaltfläche diese Methode:Gap on Navigation Controller

-(IBAction)loadOptionsView:(id)sender { 

    if (self.optionsRootController == nil) { 

      //optionsRootController is declared as: UINavigationController *optionsRootController; 
      optionsRootController = [[UINavigationController alloc] init]; 

      //Options is a UIViewController 
      Options *myOptions = [[Options alloc] initWithNibName:@"OptionsMenu" bundle:nil]; 
      [optionsRootController pushViewController:myOptions animated:NO]; 
      [myOptions release]; 
    } 

    [self.view addSubview:optionsRootController.view]; 

} 

Was passiert, wenn ich auf die Schaltfläche klicken, ist, dass es die xib Datei Optionsmenü oben auf dem aktuellen Bildschirm lädt, aber es gibt eine Lücke an der Spitze von der Größe der Statusleiste, so kann ich die Ansicht unten sehen. Irgendeine Hilfe? Was ist die richtige Methode zum Laden einer neuen Ansicht, die einen Navigationscontroller enthält?

Danke euch allen!

+0

Hat Ihre erste Ansicht eine Statusleiste? Vielleicht wäre ein Screenshot der ersten Ansicht und der zweiten Ansicht hilfreich – Jab

+0

Ich habe selbst keine Statusleiste hinzugefügt. Es hat dieselbe Statusleiste, die standardmäßig von jeder App verwendet wird. –

Antwort

5

löste ich dieses Problem nach, indem:

[optionsRootController pushViewController:myOptions animated:NO]; 

dieser Linie

:

[optionsRootController.view setFrame: [self.view bounds]]; 

Nizza und einfach!

1

denke ich UINavigationController designierter initializer

- (id) initWithRootController:(UIViewController *)rootController 

Code ausgedrückt würde So ist oben besser als

//optionsRootController is declared as: UINavigationController *optionsRootController; 

    //Options is a UIViewController 
    Options *myOptions = [[Options alloc] initWithNibName:@"OptionsMenu" bundle:nil]; 
    optionsRootController = [[UINavigationController alloc] initWithRootController: myOptions]; 
    [myOptions release]; 
+0

Es produziert das gleiche Ergebnis :( –

-1

ist der Blick in Ihrer Feder die richtige Größe für den ganzen Bildschirm? Versuchen Sie, die simulierte Statusleiste in IB zu deaktivieren.

Verwandte Themen