возможно ли вставить кнопку на панель инструментов с формой, похожей на кнопку «Назад», используемую на панели навигации? вот что я имею в виду:
заранее спасибо!
возможно ли вставить кнопку на панель инструментов с формой, похожей на кнопку «Назад», используемую на панели навигации? вот что я имею в виду:
заранее спасибо!
Вы не можете сделать это, по крайней мере, не с формой кнопки «Назад», той, что со стрелкой слева. backBarButtonItem
является только свойством UINavigationItem.
Вы можете либо использовать прямоугольную кнопку на панели инструментов, чтобы вернуться назад (хотя я не думаю, что Apple любит это... вам следует прочитать Руководство по человеческому интерфейсу iOS),
ИЛИ вы можете добавить пользовательскую кнопку "Назад" в другое место на экране. Например, если ваша панель инструментов находится внизу, вы можете добавить пользовательскую кнопку «Назад» в верхний левый угол экрана, чтобы все было аккуратно. Таким образом, вы сэкономите место на экране, имея панель навигации только для кнопки «Назад».
typeonerror имеет код на github, который содержит то, что вам нужно; на самом деле это для настройки кнопки «Назад» на контроллере представления, но вместо этого вы можете использовать ее для создания кнопки «Назад» на панели инструментов:
https://github.com/typeoneerror/BBCustomBackButtonViewController
В частности, код, подобный следующему (который фактически был получен из stackoverflow, Настройка UINavigationBar и кнопки «Назад» ):
+ (UIBarButtonItem *)styledBackBarButtonItemWithTarget:(id)target selector:(SEL)selector;
{
UIImage *image = [UIImage imageNamed:@"button_back"];
image = [image stretchableImageWithLeftCapWidth:20.0f topCapHeight:20.0f];
NSString *title = NSLocalizedString(@"Back", nil);
UIFont *font = [UIFont boldSystemFontOfSize:12.0f];
UIButton *button = [UIButton styledButtonWithBackgroundImage:image font:font title:title target:target selector:selector];
button.titleLabel.textColor = [UIColor blackColor];
CGSize textSize = [title sizeWithFont:font];
CGFloat margin = (button.frame.size.height - textSize.height) / 2;
CGFloat marginRight = 7.0f;
CGFloat marginLeft = button.frame.size.width - textSize.width - marginRight;
[button setTitleEdgeInsets:UIEdgeInsetsMake(margin, marginLeft, margin, marginRight)];
[button setTitleColor:[UIColor colorWithRed:53.0f/255.0f green:77.0f/255.0f blue:99.0f/255.0f alpha:1.0f] forState:UIControlStateNormal];
return [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
}