Мне нужно добавить кнопку левой панели в моем приложении, которая выглядит как системная кнопка возврата, но не является системной кнопкой возврата, поскольку она появится на контроллере представления, который является единственным виртуальным каналом в моем стеке navController, и выполнит мой собственный код. Простое написание "Назад" для меня не очень хорошо, так как мне также нужно отображать стрелку "‹ ". Есть ли способ программно создать такую стрелку, не создавая изображения с помощью этой стрелки?
Вопрос
Стрелка назад на iOS 7
- возможный дубликат Создание стрелки влево кнопка (например, стиль возврата UINavigationBar) на UIToolbar Fruity Geek 19.12.2013
- Обратите внимание, что предлагаемый дубликат - это гораздо более старый вопрос, датируемый 2008 годом, с только одним ответом, относящимся к iOS 7. Кроме того, OP здесь специально попросил решение, отличное от того, что описано в этом одном ответе. Давайте не будем слишком торопиться, чтобы закрыть это как дубликат. Caleb 19.12.2013
Ответы
Ответ 1 · рейтинг 2 · onegray
Подумайте об использовании фиктивного UIViewController в качестве корневого контроллера представления для вашего стека UINavigationController:
[[UINavigationController alloc] initWithRootViewController:[UIViewController new]];
[navController pushViewController:viewController animated:NO];
Затем вы можете использовать мое расширение BackButtonHandler для обработки действия кнопки "Назад" (как описано в эта ветка):
-(BOOL) navigationShouldPopOnBackButton {
[self dismissModalViewControllerAnimated:YES];
return NO;
}
Ответ 2 · рейтинг 11 · staticVoidMan
Для этого можно использовать любой символ Юникода (где угодно в коде).
Здесь вы можете найти то, что хотите:
Xcode> Редактировать> Специальные символы ...
Найдите arrow или back или просмотрите категории.
Затем скопируйте и вставьте символ там, где это необходимо (в заголовке объекта XIB или в методах setTitle или setText, как любой другой символ)
что-то вроде:
Ответ 3 · рейтинг 4 · Kaveh Vejdani
Попробуй это:
// After you create and place your backButton:
UILabel* arrowLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, 20, 20)];
arrowLabel.text = @"<";
arrowLabel.textColor = [backButton titleColorForState:UIControlStateNormal];
arrowLabel.transform = CGAffineTransformMakeScale(1,2);
[backButton addSubview:arrowLabel];
Если addSubview вызывает проблемы, попробуйте
[backButton insertSubview:arrowLabel atIndex:0];
Ответ 4 · Alex
Посмотрите перечисление UIBarButtonSystemItem под contants в документации UIBarButtonItem:
Это все стили кнопок, предоставленные Apple:
typedef enum {
UIBarButtonSystemItemDone,
UIBarButtonSystemItemCancel,
UIBarButtonSystemItemEdit,
UIBarButtonSystemItemSave,
UIBarButtonSystemItemAdd,
UIBarButtonSystemItemFlexibleSpace,
UIBarButtonSystemItemFixedSpace,
UIBarButtonSystemItemCompose,
UIBarButtonSystemItemReply,
UIBarButtonSystemItemAction,
UIBarButtonSystemItemOrganize,
UIBarButtonSystemItemBookmarks,
UIBarButtonSystemItemSearch,
UIBarButtonSystemItemRefresh,
UIBarButtonSystemItemStop,
UIBarButtonSystemItemCamera,
UIBarButtonSystemItemTrash,
UIBarButtonSystemItemPlay,
UIBarButtonSystemItemPause,
UIBarButtonSystemItemRewind,
UIBarButtonSystemItemFastForward,
UIBarButtonSystemItemUndo, // iOS 3.0 and later
UIBarButtonSystemItemRedo, // iOS 3.0 and later
UIBarButtonSystemItemPageCurl, // iOS 4.0 and later
} UIBarButtonSystemItem;
Возможно, вам будет достаточно перемотки или отмены.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Как управлять ресурсами и активами в приложении iOS
- Напишите Quick Clean Swift, изучив чистую архитектуру
- Основы Swift - неделя 4
- Давайте создадим забавную анимацию типа "лайк" на Swift
- Удалить белый градиент на панели навигации и кнопке
- Настройте кнопки и изображения UINavigationBar, изменив размер и положение