ios кнопка назад на панели

возможно ли вставить кнопку на панель инструментов с формой, похожей на кнопку «Назад», используемую на панели навигации? вот что я имею в виду:

образец

заранее спасибо!


person ghiboz    schedule 12.07.2011    source источник
comment
Я не уверен, что понимаю, чего вы пытаетесь достичь. Вы пытаетесь функционально объединить панель инструментов и панель навигации в одну панель?   -  person MiguelB    schedule 12.07.2011
comment
нет, извините, на мой взгляд, у меня есть только панель инструментов, но мне нужно создать кнопку, подобную задней, но задняя часть со стрелкой активна, только если я использую панель навигации, но у меня есть только панель инструментов   -  person ghiboz    schedule 12.07.2011
comment
Итак, вам нужна кнопка «Назад» на панели инструментов, которая становится активной, только если вы вставите какой-либо контроллер в стек навигации. Это оно?   -  person MiguelB    schedule 12.07.2011
comment
да, у меня нет панели навигации, только панель инструментов :)   -  person ghiboz    schedule 12.07.2011
comment
Я добавлю свой ответ через несколько минут. Плотно держаться.   -  person MiguelB    schedule 12.07.2011


Ответы (2)


Вы не можете сделать это, по крайней мере, не с формой кнопки «Назад», той, что со стрелкой слева. backBarButtonItem является только свойством UINavigationItem.

Вы можете либо использовать прямоугольную кнопку на панели инструментов, чтобы вернуться назад (хотя я не думаю, что Apple любит это... вам следует прочитать Руководство по человеческому интерфейсу iOS),

ИЛИ вы можете добавить пользовательскую кнопку "Назад" в другое место на экране. Например, если ваша панель инструментов находится внизу, вы можете добавить пользовательскую кнопку «Назад» в верхний левый угол экрана, чтобы все было аккуратно. Таким образом, вы сэкономите место на экране, имея панель навигации только для кнопки «Назад».

person MiguelB    schedule 12.07.2011
comment
Возможно, с классом UIButton?... установите его фрейм там, где он вам нужен, установите его фоновое изображение (с формой стрелки назад или что-то в этом роде) и т. д. - person MiguelB; 12.07.2011

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];
}
person JosephH    schedule 18.07.2012