Intereting Posts
как автоматически синхронизировать резервное копирование данных сторонних приложений через iTunes Как разобрать этот JSON с помощью SWIFT3 Почему мой CAShapeLayer не оживляет? (iOS Swift) В UIViewController, как я могу использовать один метод, автоматически обрабатывает множество кнопок Ошибка Xcode6-Beta при попытке встроить контроллер вида в контроллер навигации Текст не отображается в UIActivityViewcontroller Swift: вызов функции с параметрами, которые могут быть nil Переключиться с UINavigationController на UISplitviewController Утечки приборов / Weird Memory Leak Тип не соответствует протоколу «ImagePickerDelegate» Экземпляр IBUITableViewCellContentView не может быть декодирован ошибкой ios iOS alloc popover controller вызывает сбой Xamrain Form (работает на iOS): невозможно создать файл раскадровки при создании. Статус AVPlayer обновляется, когда приложение выходит на передний план Новая совместимость testflight с ios 7

Отправка «Редактировать» в таблицу (отдельные виды)

У меня есть ситуация, когда у меня есть ViewController, который содержит кнопку редактирования, и внутри этого другого представления (которое является отдельным) содержит мое табличное представление.

В настоящее время я добавляю кнопку редактирования программно (как и с одним представлением). Однако, как и ожидалось, когда вы нажимаете кнопку редактирования, она изменяется на «cancel», но таблица не переходит в режим редактирования (все нормальные методы включены и содержат код, который я буду использовать для одного представления).

Поэтому я задаюсь вопросом, как отправить «сообщение» из моей кнопки редактирования в контроллере «Вид» в представление таблицы (что, как упоминалось, является отдельным). Нужно ли мне создавать делегат? или есть специальный метод, который я могу назвать?

Я искал эту игру, но если кто-нибудь мог бы даже указать мне в правильном направлении, я бы очень признателен.

Я собираюсь обратиться к контроллеру, которому принадлежит кнопка редактирования в качестве VC1, и контроллер, которому принадлежит (является делегатом для) табличное представление как VC2. Также прочитайте делегацию . Это не факультативный вопрос в разработке iOS.

В VC2 объявите метод с именем -setTableIsEditing: (BOOL) isEditing и реализуйте его, чтобы просто установить свойство isEditing в вашем представлении таблицы, например:

- (void)setTableIsEditing:(BOOL)isEditing { self.myTableView.isEditing = isEditing; } 

Затем в реализации VC1 кнопки touchUpInside делегировать обновление ivar bool для отслеживания режима редактирования и вызвать этот метод на VC2 с правильным параметром:

 - (IBAction)editButtonPressed { _isEditingTable = !_isEditingTable; [self.myVC2Instance setTableIsEditing:_isEditingTable]; } 

Делегат будет работать, или вы можете отправить NSNotification с помощью метода касания кнопки, к которому будет подписано табличное представление. Затем там вы вызываете [UITableViewCell setEditing: YES animated: YES] для каждой ячейки, если это необходимо.

Использование может использовать

  - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { // Return NO if you do not want the specified item to be editable. return YES; } 

И затем выполните

  // Override to support editing the table view. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath // You can use NSUserDefaults for sending information to the controllers in another view //and you can manipulate them. }