Как сделать UINavigationItem backBarButtonItem прямоугольным? - PullRequest
1 голос
/ 05 сентября 2011

Как установить self.navigationItem.backBarButtonItem моего RootViewController, чтобы кнопка «Назад» была прямоугольной, а не стрелкой назад?Я хочу сделать это, потому что я использую пользовательский backBarButtonItem с изображением сетки из четырех квадратов (например, изображение в виде девяти квадратных квадратов, которое приложение Facebook iPhone использует для кнопки «Домой»).

В настоящее время в -[RootViewController initWitNibName:bundle:] я делаю:

self.navigationItem.backBarButtonItem =
[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"go-home.png"]
                                 style:UIBarButtonItemStylePlain
                                target:nil action:NULL];

Примечание: это не вызывает утечку памяти, так как я использую ARC.

Но,это делает кнопку со стрелкой влево.Есть ли простое решение, чтобы сделать кнопку прямоугольной со всех сторон?

Я знаю, что мог бы установить leftBarButtonItem для всех контроллеров вида, которые могут быть нажаты от RootViewController, но таких как пятьразные варианты, так что было бы много повторений.Я думаю, я мог бы создать метод, например, +[Utils homeBarButtonItem], который создает кнопку выше, а затем вызвать self.navigationItem.leftBarButtonItem = [Utils homeBarButtonItem]; в каждом из пяти методов -viewDidLoad контроллеров представления, но мне интересно, есть ли простое исправление I?м отсутствует.

1 Ответ

3 голосов
/ 05 сентября 2011

К сожалению, единственный способ, как вы предлагаете, - это использовать leftBarButtonItem и использовать служебный класс конструктора кнопок.

Установите действие вашего leftBarButtonItem, чтобы вывести контроллер представления, исделано.

[self.navigationController popViewControllerAnimated:YES];
...