Благодаря iOS5 вы теперь можете настраивать внешний вид UINavigationBar без необходимости создавать подклассы или создавать категорию.
Следующий блок кода (поместите его в applicationDidFinishLoading: метод) изменит UINavigationBar длявсе приложение к любому изображению, которое вы ему даете.
Обратите внимание, это будет работать ТОЛЬКО в iOS5
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav bar.png"] forBarMetrics:UIBarMetricsDefault];
Однако вы такжевозможность изменять внешний вид одной UINavigationBar в зависимости от того, в каком контроллере представления вы находитесь, используя следующий код в viewDidLoad.
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav bar.png"] forBarMetrics:UIBarMetricsDefault];
Приведенный выше код обсуждается исключительноновые способы настроить внешний вид UINavigationBar благодаря iOS5.Тем не менее, здесь не обсуждается способ реализации кнопок.
Однако добавление кнопок - это совсем другая игра.Для этого я бы порекомендовал создать подкласс UINavigationBar
, а затем добавить туда кнопки, где это необходимо.Возможно, вам даже не подойдут просто стандартные UINavigationBar
, но пользовательские UIBarButtonItem
s, которые запускают определенный вид.
Например:
UIView *rightButton = [[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 30.0f, 30.0f)] autorelease];
[rightButton addSubview:[UIImage imageNamed:@"rightButtonImage.png"]];
UIBarButtonItem *rightButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:rightButton] autorelease];
[rightButtonItem setAction:@selector(rightButtonAction:)];
Я не проверял этокод, так что это не решение для копирования / вставки, но оно дает вам представление о том, что необходимо сделать для выполнения «нестандартных» UIBarButtonItems.
Удачи!