iPhone – добавьте кнопку «Добавить», когда кнопка «Изменить» выбрана в UITableView

У меня есть табличное представление в моем приложении, которое показывает некоторые элементы. когда я нажимаю на один элемент, появляется новый вид таблицы (с контроллером навигации: push). Таким образом, в верхней части таблицы видят теперь навигационный контроллер с автоматической стрелкой «назад», чтобы вернуться. У меня есть кнопка «edit», включенная с правой стороны.

Теперь, когда я нажимаю на кнопку редактирования, кнопка «Назад» должна исчезнуть, и вместо кнопки «Назад» должна появиться кнопка «+». Это возможно? Или можно одновременно нажать кнопку «Редактировать» и «Добавить» на экране?

благодаря

4 Solutions collect form web for “iPhone – добавьте кнопку «Добавить», когда кнопка «Изменить» выбрана в UITableView”

Это достаточно просто. Переопределите метод setEditing:animated: вашего контроллера. Это вызывается, когда кнопка Edit / Done переключается (при условии, что вы используете стандартный editButtonItem из UIViewController ).

В этом методе вы создаете кнопку «добавить» и делаете ее левой кнопкой мыши. Это скроет кнопку «Назад». Удалите кнопку «Добавить», и снова появится кнопка «Назад».

 - (void)setEditing:(BOOL)editing animated:(BOOL)animated { [super setEditing:editing animated:animated]; if (editing) { // Add the + button UIBarButtonItem *addBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAction:)]; self.navigationItem.leftBarButtonItem = addBtn; } else { // remove the + button self.navigationItem.leftBarButtonItem = nil; } } 

Да, это тот подход, который я использовал:

Имейте свойство для кнопки «Назад» и кнопки «Добавить» и установите его в viewDidLoad:

 self.backButton = self.navigationItem.leftBarButtonItem; self.addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addPressed:)]; 

Теперь вам просто нужно поменять кнопки и обновить состояние TableView соответственно при нажатии «Edit». Здесь я также меняю кнопку «Редактировать» на «Готово»:

 - (IBAction)editBarButtonPressed:(UIBarButtonItem *)sender { if (self.tableView.editing == NO) { UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(editBarButtonPressed:)]; self.navigationItem.rightBarButtonItem = myButton; [self.tableView setEditing:YES animated:YES]; [self.navigationItem setLeftBarButtonItem:self.addButton animated:YES]; } else { UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editBarButtonPressed:)]; self.navigationItem.rightBarButtonItem = myButton; [self.tableView setEditing:NO animated:YES]; [self.navigationItem setLeftBarButtonItem:self.backButton animated:NO]; } } 

Надеюсь, что это ответ на ваш вопрос. 🙂 уш denrase

Кнопка со стрелкой назад – это кнопка вашего навигационного контроллера. Поэтому, если вы хотите исчезнуть с той же кнопки, вам нужно написать следующий код:

 self.navigationItem.hidesBackButton=YES; 

Теперь, если вы хотите добавить свою настраиваемую кнопку в контроллер навигации, используйте ниже код:

  UIBarButtonItem *customButton = [[UIBarButtonItem alloc] initWithTitle:@"Add" style:UIBarButtonItemStyleBordered target:self action:@selector(yourMethod:)]; self.navigationItem.rightBarButtonItem = customButton; 

Вы можете программно скрыть кнопку «Назад», когда начнется редактирование таблицы, а затем добавьте кнопку «Добавить» слева от панели навигации.

 [self.navigationItem setHidesBackButton:YES]; UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addButtonPressed)]; [self.navigationItem setLeftBarButtonItem:addButton]; 

Затем, когда пользователь нажимает кнопку «Готово», замените кнопку «Добавить» кнопкой «Назад»:

 [self.navigationItem setHidesBackButton:NO]; self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem; 
  • Цвет чередует UITableViewCell в UITableView?
  • Исправлено UIImage в UITableView наверху
  • UISlider в UITableView не отвечает на салфетку
  • Переход к детальному представлению из ячейки таблицы со списком с помощью Xcode Storyboard
  • Фильтрация разделов таблицы с использованием сегментированного элемента управления
  • iOS8 UISearchController обновляет UITableView
  • Проблема с местоположением IOS 11 UiTableViewCell
  • TableView Showing Behind Tab Bar
  • dequeueReusableCellWithIdentifier занимает 0,5 секунды для ячейки, содержащей UIDatePicker
  • Как установить UITableView contentinset и вставить строку одновременно?
  • Расширение таблицы viewview на основе номера строки UIlabel
  • Interesting Posts

    EXC_SOFTWARE / UNCAUGHT_NS_EXCEPTION

    Как заставить проигрыватель AVPlayer играть в фоновом режиме?

    Получить строковое представление id в Objective-C

    UINavigationController, встроенный в представление контейнера, отображает контроллер табличного представления с неправильным размером

    Как включить контакт снаружи при открытии PopOverView?

    UISlider плавно меняет стоимость

    Следует ли регулярно проверять подписку на iOS, не обновляющую подписку?

    Ошибка AVCaptureSession сохраняется между установками

    Где добавить код ограничения автоматической компоновки в пользовательский UIView

    основные данные в атрибуте массива хранения или работа с файлами или отношениями

    Как сделать имя приложения iOS локализуемым?

    Ошибка SBNotificationHub при возврате из registerTemplateWithDeviceToken в Testflight Только для сборки бета-версии

    Swift – Изменение размера шрифта внутри метки

    Как сделать несколько запросов GET и дождаться завершения всех операций?

    Получить путевые точки между двумя точками

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.