Я столкнулся с этой же проблемой.Мое решение состояло в том, чтобы добавить значок в качестве одного из элементов leftBarButtonItems после гибкого пробела.Это подталкивает его к заголовку.
UIBarButtonItem *space = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];
UIView *icon = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titleIcon"]] autorelease];
UIBarButtonItem *iconItem = [[[UIBarButtonItem alloc] initWithCustomView:icon] autorelease];
NSArray *items = [NSArray arrayWithObjects: space, iconItem, nil];
self.navigationItem.leftBarButtonItems = items;
self.navigationItem.leftItemsSupplementBackButton = YES;
Это не совсем то же самое, что создание пользовательского titleView, однако, двумя способами: (1) текст заголовка остается центрированным, если это возможно, с иконкойслева, вместо центрирования заголовка и значка вместе;и (2) когда вы помещаете новый вид в стек, значок не сдвигается влево с заголовком;вместо этого он исчезает, как и другие элементы панели кнопок.
Так что, в зависимости от ваших требований, это решение может работать или не работать для вас.Но, по крайней мере, это позволяет избежать попыток сопоставить стандартные текстовые атрибуты заголовка в пользовательском представлении заголовка.(Насколько я могу понять, автоматического способа сделать это не существует.)