В зависимости от того, насколько точно вы хотите использовать навигационную панель, вам может помочь следующее:
1) Изображение на панели, заменяющее текст заголовка.(self является UIViewController)
UIImageView *titleImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationItem.titleView = titleImg;
[titleImg release];
2) Полностью настраиваемая навигационная панель
Subview UIView (ИСПРАВЛЕНИЕ: UINavigationController) с кончиком, используя (например, портретную ориентацию iPhone) aизображение в качестве фона (может иметь градиент), а затем настраиваемые кнопки слева и справа, все подключено к соответствующим функциям респондента.До тех пор, пока вы добавляете это представление панели навигации в качестве подпредставления для каждого контроллера представления и т. Д. Каждый раз, когда новый стек помещается в стек, вы переопределяете стандартную панель навигации Apple.(не забудьте установить их скрытыми в делегате приложения)
Редактировать:
NavigationBar.h
@interface NavigationBar: UIViewController
{
IBOutlet UIImageView* navigationBarImgView; // remember to set these 4 IBOutlets as properties with (nonatomic, retain) and synthesize them.
IBOutlet UILabel* controllerHeader;
IBOutlet UIButton* rightButton;
IBOutlet UIButton* leftButton;
eController controller;
int screenWidth;
}
NavigationBar.m
-(id)initNavigationBar: (NSString*)name bundle:(NSBundle*)bundle: (eController)controllerName: (int)inScreenWidth
{
[super initWithNibName:name bundle:bundle];
controller = controllerName;
screenWidth = isScreenWidth;
return self;
}
Вы можете видеть, что мой init здесь проходит только в нескольких вещах - enum, который был определен в моем делегате приложения, который содержит имена всех возможных контроллеров представления.Мы интерпретируем это перечисление в моем собственном классе панели навигации и переключаемся между всеми возможными контроллерами, а затем настраиваем их кнопки и заголовки и действия, которые запускаются с использованием этой информации.Ширина экрана важна - хотя она может вам не понадобиться, если вы создаете панель в IB, установите ее размер, чтобы заполнить выделенное пространство для обеих ориентаций.
Держите меня в курсе:)