私はこの同じ問題に遭遇しました。私の解決策は、アイコンをleftBarButtonItemの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を作成するのとまったく同じではありません:(1)タイトルテキストではなく、一緒にタイトルやアイコンを中心とするよりも、その左にあるアイコンで、可能な場合は中心のまま; (2)新しいビューをスタックにプッシュすると、アイコンはタイトルと共に左にスライドしません。その代わりに、他のバーのボタン項目のように消えます。
お客様の要件に応じて、この解決法が機能する場合もあれば、うまくいかない場合もあります。しかし、少なくとも、カスタムタイトルビューで標準のタイトルテキスト属性と一致させようとするのは避けてください。 (私が知る限りでは、自動的にそれを行う方法はありません)
あなたはバックボタンのラベルの幅をとることを意味します。私はもっと標準的なアプローチがあるかもしれないと思った... –