To display an image in a UIBarButtonItem, you need to create a UIButton with the image, then add that button to the UIBarButtonItem. Otherwise you just get the outline, as you mentioned.
So:
// Initialize the UIButton with your image
UIImage *myImage = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"someImage" ofType:@"png"]];
UIButton *myButton = [[UIButton alloc] init];
[myButton setImage:myImage forState:UIControlStateNormal];
//Then create the UIBarButton
UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton];