In my navigation bar, I have a magnifying glass icon that brings up a search bar. I'm not using a UISearchDisplayController, so I opted to build my own UINavigationItem and then push it over the standard UINavigationItem using pushNavigationItem.
The problem is that the UINavigationItem seems to be pushed around 8 pixels to the right. This causes the cancel button (with localized text 'Annuleren') to be really close to the edge of the screen.

I tried inspecting the self.mySearchBar.bounds at runtime, but the origin is 0,0. I've played around a bit with AutoLayout and programmatically added constraints, but I haven't been successful. I hope it's possible without AutoLayout.
This is my code:
- (IBAction)displaySearchBar:(id)sender {
if (!self.mySearchNavigationItem)
{
    self.mySearchNavigationItem = [[UINavigationItem alloc] initWithTitle:@""];
    self.mySearchNavigationItem.hidesBackButton = YES;
    self.mySearchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
    self.mySearchBar.showsCancelButton = YES;
    self.mySearchBar.delegate = self;
    [self.mySearchBar sizeToFit];
    [self.mySearchBar setPlaceholder:@"Zoeken..."];
    UIView *barWrapper = [[UIView alloc]initWithFrame:self.mySearchBar.bounds];
    [barWrapper addSubview:self.mySearchBar];
    self.mySearchNavigationItem.leftBarButtonItem = nil;
    self.mySearchNavigationItem.backBarButtonItem = nil;
    self.mySearchNavigationItem.titleView = barWrapper;
    UIButton *cancelButton;
    UIView *topView = self.mySearchBar.subviews[0];
    for (UIView *subView in topView.subviews) {
        if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton")]) {
            cancelButton = (UIButton*)subView;
        }
    }
    if (cancelButton) {
        [cancelButton setTitle:@"Annuleren" forState:UIControlStateNormal];
    }            
}
[self.navigationController.navigationBar pushNavigationItem:self.mySearchNavigationItem animated:YES];
NSTimeInterval delay;
if (self.tableView.contentOffset.y >1000) delay = 0.4;
else delay = 0.1;
[self performSelector:@selector(activateSearch) withObject:nil afterDelay:delay];        
}