NavigationBar nicht angezeigt properling wenn pushViewController
Das problem ist ziemlich einfach zu verstehen mit den Bildern.
Ich habe einen UINavigationController, mit denen der Benutzer wechseln zwischen Ansichten.
Die erste Ansicht enthält eine Suchleiste und eine Tabelle anzeigen, etwa so :
Die zweite ist eine grundlegende Ansicht, wo Informationen über die Zelle sind display
Wenn ich auf das Suchfeld, der navigation-controller wird ausgeblendet, und die Suchleiste ist nun an der Spitze.
Nun, wenn ich auf eine Zelle klicken, geht es auf den zweiten Blick auf, aber die Navigationsleiste wird zunächst ausgeblendet wie unten :
Dann, es wird automatisch angezeigt, wie :
Ich habe versucht, ein paar Dinge wie blenden Sie die Navigationsleiste ein, bevor Sie die nächste view-controller, aber es ist ziemlich hässlich..
Weiß jemand, wie man die Karte in der Navigationsleiste direkt auf den zweiten Blick (wie in der Kontakt-Anwendung)?
[UPDATE] : Code
AppDelegate.m (ich spreche navigationcontroller2)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
FirstViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
SecondViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
viewController1.managedObjectContext = [self managedObjectContext];
viewController2.managedObjectContext = [self managedObjectContext];
viewController1.viewController2 = viewController2;
UINavigationController *navigationcontroller1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
[navigationcontroller1.navigationBar setTintColor:[UIColor lightGrayColor]];
UINavigationController *navigationcontroller2 = [[UINavigationController alloc] initWithRootViewController:viewController2];
[navigationcontroller2.navigationBar setTintColor:[UIColor lightGrayColor]];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationcontroller1, navigationcontroller2, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
FirstView.m
- (void) searchBarTextDidBeginEditing:(UISearchBar *)theSearchBar {
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!noResultsToDisplay) {
PinDetailsViewController *pinDetailsViewController = [[PinDetailsViewController alloc] initWithNibName:@"PinDetailsViewController" bundle:nil];
NSManagedObject *managedObject = [fetchedResultsController objectAtIndexPath:indexPath];
Pin *pin = (Pin *) managedObject;
[self.navigationItem setTitle:@"Pins"];
[self.navigationController pushViewController:pinDetailsViewController animated:YES];
[pinDetailsViewController updateWithPin:pin];
}
}
Wenn Sie etwas anderes benötigen, einfach Fragen, aber ich denke, es ist alles da.
- Poste bitte etwas code. Ansonsten ist es sehr schwierig zu sehen, wo das problem ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, diesen code in jedem viewcontroller.
Bevor Sie schieben Sie den neuen view-controller, sollten Sie einblenden der Navigationsleiste:
[self.navigationController setNavigationBarHidden:NO animated:YES];
Ich hatte ein ähnliches problem mit der position meiner Navigationsleiste. Mir war, bewegte sich hinter der status-bar, und ich das Problem durch manuelles einstellen der Navigations-frame:
Hatte ich um diese Methode aufzurufen, die in einer Reihe von Orten, einschließlich viewWillAppear: und didRotateFromInterfaceOrientation:, aber es funktionierte ein Leckerbissen 🙂
Ausblenden der UINavigationBar stören die Eigenschaften manchmal. Versuchen Sie es mit der Eigenschaft
alpha
statthidden
.