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; 
  • не удалось установить высоту динамического UITableView в объективе c
  • Weird IOS ошибка с UITableViewCell и userInteractionEnabled
  • UITableViewCell Скользящее моделирование в быстром
  • UICollectionView обновляет одну ячейку
  • NSFetchedResultsController добавляет строку или раздел
  • Как настроить разделитель UITableView, когда ячейки получили пользовательскую высоту
  • «Никаких строк не найдено», когда нет ни строк, ни ячеек для UICollectionView и UITableView
  • UITableView добавляет / удаляет разделы, не находясь в режиме редактирования?
  • Xamarin.Forms: пользовательский рендерер для отображения индикатора раскрытия информации на UITableViewCell
  • Ячейки в UITableView перекрываются. Многие ячейки в одном месте
  • Недопустимый зарегистрированный идентификатор для идентификатора
  • Interesting Posts

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

    Как я могу остановить анимацию UIViewAnimationOptionRepeat UIView?

    Получить номер версии iOS Universal Framework в клиенте

    Как остановить UIScrollView получать события касания от родительского представления?

    Приложение не запускалось при разрешении iPhone при рассмотрении на iPad

    Swift: декларация «var» без метода getter / setter не допускается здесь

    Что должно принадлежать модели в шаблоне MVC?

    Как автоматически распознавать системные предупреждения с помощью KIF-теста?

    Как проверить соединение WatchOS 2 (доступность) к Интернету?

    Xcode – формат пакета непризнанный, недействительный или неподходящий

    Xcode 4.2 в магазине Lion-App считает, что приложение уже установлено

    iPhone App – Google плюс поделиться с текстом предварительного заполнения

    Spritekit падает при вводе фона

    Предупреждение «Предыдущий прототип для функции»

    Пользовательские закругленные углы на UIView

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