Я сделал учебное пособие в своем блоге, поэтому я знаю, как сделать растягиваемую кнопку, которая может отображать нижний (стек) заголовок viewcontroller. Но то, что я надеялся сделать, - это значки (например, дом для ДОМА), без текста и без изменения размера.
Используя мой пользовательский образ и этот код ниже, я получаю растянутую версию (не хочу) с заголовком поверх (не нужно), и она нажимает/выделяет при нажатии (это хорошо);
UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Теперь я искал здесь и читал все похожие вопросы, которые возвращают старые ответы, и имеют для меня странные результаты. Вот код, который я пробовал;
UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backButtonImage style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
Этот метод не растягивает мою пользовательскую кнопку изображения (это хорошо), и он не отображает текст (что я хочу), но по-прежнему остается исходная синяя кнопка под ним (WTF), и моя пользовательская кнопка не оттенок при нажатии, только синяя кнопка под ним делает!
Пожалуйста, помогите, что мне не хватает?
* UPDATE
Я немного исправил это, используя изменяемый размер изображения. Это заставляет его не "растягивать"
UIImage *backButtonHomeImage = [[UIImage imageNamed:@"backButtonHomeWhite_30.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonHomeImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Чтобы зафиксировать заголовок, отображаемый на кнопке, которую я должен был сделать
self.title [email protected]" ";
Теперь это немного грязное исправление, но, похоже, оно работает. Единственная проблема, оставшаяся сейчас, заключается в том, что я хочу другую кнопку на разных представлениях, и этот метод вызывает некоторые проблемы; последнее представление, которое устанавливает кнопку, переводит все другие виды. Таким образом, в конце концов, в зависимости от того, как вы перемещаетесь по приложению, возврат к предыдущему виду имеет неправильную кнопку возврата и никогда не сбрасывается на правильный.
ОБНОВЛЕНИЕ 2: ПОТЕНЦИАЛЬНАЯ ИДЕЯ:
Будет ли разумное решение, или это взлом, который может что-то сломать?
Скрытие кнопки возврата по умолчанию, например,
[self.navigationItem setHidesBackButton:YES animated:NO];
... а затем с помощью пользовательского UIBarButtonItem с кнопкой в стиле, который я действительно хочу разместить в месте обратной кнопки, который отправляет popViewControllerAnimated: в UINavigationController при нажатии.
Если вы знаете более надежное решение, поделитесь им, спасибо.