この同じ問題に遭遇しました。私の解決策は、柔軟なスペースの後に、アイコンを leftBarButtonItems の 1 つとして追加することでした。これは、タイトルに対してそれを押し上げます。
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 を作成するのとはまったく同じではありません。次の 2 つの点があります。(1) 可能であればタイトル テキストを中央に配置し、タイトルとアイコンを一緒に中央に配置するのではなく、アイコンを左側に配置します。(2) 新しいビューをスタックにプッシュすると、アイコンはタイトルとともに左にスライドしません。代わりに、他のバー ボタン アイテムと同様にフェード アウトします。
したがって、要件に応じて、このソリューションが機能する場合と機能しない場合があります。ただし、少なくとも、カスタム タイトル ビューで標準のタイトル テキスト属性を一致させようとすることは避けられます。(私が発見できる限り、それを自動的に行う方法はありません。)