У меня есть типичная схема UINavigationController, но у меня есть много разных представлений, которые могут означать, что вы можете получить довольно много представлений, накладываемых друг на друга. Я хочу предоставить кнопку «Домой», и первоначально я собирался поместить ее в правую часть панели навигации; тем не менее, у меня есть панель поиска и еще одна кнопка, поэтому я надеюсь разместить ее рядом с кнопкой возврата.
В ascii art:
< Back | |Home| Title |Browse| [Search Bar]
Теперь я попытался установить backButtonItem предыдущего контроллера представления, используя следующее:
UIToolbar* toolbar = [[UIToolbar alloc]
initWithFrame:CGRectMake(0, 0, 100, 45)];
[toolbar setBarStyle: UIBarStyleBlackOpaque];
// create an array for the buttons
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];
UIBarButtonItem *back = [[UIBarButtonItem alloc] init];
back.title = @"Back";
// create a standard save button
[buttons addObject:back];
[back release];
// create a spacer between the buttons
UIBarButtonItem *spacer = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil
action:nil];
[buttons addObject:spacer];
[spacer release];
UIBarButtonItem *homeButton = [[UIBarButtonItem alloc]
initWithImage:[UIImage imageNamed:@"home32.png"]
style:UIBarButtonItemStylePlain
target:self
action:@selector(onHomeButton:)];
homeButton.style = UIBarButtonItemStyleBordered;
[buttons addObject:homeButton];
[homeButton release];
// put the buttons in the toolbar and release them
[toolbar setItems:buttons animated:NO];
[buttons release];
// place the toolbar into the navigation bar
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithCustomView:toolbar];
[toolbar release];
но это не заменяет стандартную кнопку возврата. Если я просто попробую один UIBarButtonItem и установлю backButton, это сработает.
Теперь другой подход, который я попробовал, заключается в том, чтобы в представлении, помещаемом в стек, установить leftBarButtonItem, но я не могу найти способ создать кнопку возврата, которая имеет заостренную форму слева.
Есть предложения?