Вы используете UINavigationController?
Если да, то использовать что-то вроде следующего, чтобы установить фоновое изображение и шрифт:
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor blackColor], UITextAttributeTextColor,
[UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:22.0], UITextAttributeFont,nil]];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarMetrics:UIBarMetricsDefault];
Если вы хотите, чтобы применить изменения к панели навигации в некоторых конкретных подклассов UIViewController, а затем использовать что-то вроде следующие:
[[UINavigationBar appearanceWhenContainedIn:[VCSubclassToChangeAppearance class], nil]
setBackgroundImage:[UIImage imageNamed:@"navBar.png"]
forBarMetrics:UIBarMetricsDefault];
Вы также можете использовать этот метод для создания исключений из правила, например установить один вид для всех, кроме одного, в частности.
Если вы хотите изменить внешний вид стандартных кнопок на панели навигации, сделать что-то вроде этого:
UIImage *standardBackgroundImage = [[UIImage imageNamed:@"navBarButton.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 8, 0, 8)];
[[UIBarButtonItem appearance] setBackgroundImage:standardBackgroundImage
forState:UIControlStateNormal
style:UIBarButtonItemStyleBordered
barMetrics:UIBarMetricsDefault];
В этом примере каждая кнопка навигационной панели (это не кнопка назад) и имеет тип UIBarButtonItemStyleBordered, будет использовать изображение. Вам нужно будет работать с UIEdgeInsets для вашего конкретного изображения кнопки.
Мне нужно, чтобы в качестве заголовка была кнопка, а не ярлык. – meisel
Когда вы говорите «вид названия», вы на самом деле имеете в виду UINavigationBar? Это поможет уточнить, действительно ли я посылаю вас по правильному пути. – siburb
Да, моя ошибка. Заголовок названия каждого UINavigationBar. – meisel