After I run my application in iOS 8 (XCode 6.0.1, iPhone 6), the back button does not hide.
My code:
- (void)removeCategoriesButton
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
[_navigationController.topViewController.navigationItem setHidesBackButton:YES];
[_navigationController.topViewController.navigationItem setLeftBarButtonItem:nil];
} else {
UIViewController *controller = _app.window.rootViewController;
if ([controller isKindOfClass:[UINavigationController class]]) {
UINavigationController *nav = (UINavigationController *)controller;
[nav.topViewController.navigationItem setHidesBackButton:YES];
[nav.topViewController.navigationItem setLeftBarButtonItem:nil];
}
}
}
But the back button does not hide (see screenshot):
UPD:
I run application in another simulators, and i see this "bug" only on iOS 8.
I tried many of the answers but the only one that worked for me was:
This bug only happens when you use Storyboard. Another solution is add an UIBarButtonItem with empty title to "fake" it.
Call on your ViewDidLoad the following method:
Objective-C:
or
Swift:
Try to use
self.navigationItem.hidesBackButton = true
inviewWillAppear()
method, this worked for me.Where have you written that code?
It should be as simple as in your view controller's loadView/viewDidLoad: method adding this
This works for me on an iPhone 6
The only way I've found to do this is to hide the navigation bar and adding a navigation bar in storyboard and redisplay the navigation bar in the next ViewController. All I had to do is add a label in the status bar so that the navigation bar is uniform. I have found no other way...
so that the navigation bar is displayed in the next viewcontroller, declare in: