Search code examples
iosios8uinavigationcontrollerekevent

White bottom bar appears after pushing EKEventViewController on Navigation Controller and returning


I'm developing an app displaying a table of events that are fetched from the iOS Calendar. When a row in the table is clicked, I want to display the event info using an EKEventViewController. Here is what the table of events look like: EventList before push When an event in this list is clicked, I push an EKEventViewController using the following code:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    EKEventViewController *eventViewController = [EKEventViewController new];
    eventViewController.event = [self.events objectAtIndex:[indexPath row]];
    [self.navigationController pushViewController:eventViewController animated:YES];
    [self.navigationController setNavigationBarHidden:NO];
    [tableView reloadData];
}

I get to the event information screen (exactly what I want): Event overview

But when I now click the back button in the upper left corner I am met with this screen: Event list after push

Notice the white bar at the bottom. To get rid of this bar I now have to kill the app, going back to the main menu and other parts of the app has no effect (every screen is just "shrunk" to fit into the now smaller space, probably because the use of auto layout).

This does not happen on iOS 7, where this white bar never appears, only on iOS 8 (8.2 tested). What is this bar and how to get rid of it?

EDIT: I notice that the "white" bar looks gray when the screenshot is posted here on StackOverflow, while it is definitely white on the device.

EDIT2: Picture of the constraints for the bottom button: layout


Solution

  • I never found out what the white bar really was, but I ended up presenting the EKEventViewController modally instead, which works very well: How to get a “Done” or “Back” button in an EKEventViewController when no having a navigation bar?