вы просто используете пользовательский вид для элемента панели кнопок. Вот пример с пользовательской кнопкой изображения
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(blah) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 32, 32)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
Вы хотите сделать это таким образом, потому что название контроллера Nav будет изменяться автоматически таким образом. Если вы сделаете это по-своему (подпункт навигационной панели), текст будет позади или поверх изображения
редактировать: он также будет оставаться на экране, когда вы нажимаете и нажимаете контроллеры представления.
edit2: еще раз, вы можете использовать просмотр изображений как пользовательский вид, а не кнопку. Вот код
UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,32,32)];
[iv setImage:[UIImage imageNamed:@"myImage.png"]];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:iv];
[iv release];