2015-12-31 6 views
1

У меня есть приложение (написанное в Swift), которое позволяет пользователю искать поля для гольфа в searchController. Затем они могут выбрать этот курс, а затем выбранный курс переходит в таблицуView. Я использую один и тот же контроллер представления как для контроллера поиска, так и для списка выбранных курсов.Disable Cell Swipe Action

Проблема, с которой я сталкиваюсь, заключается в том, что я хочу, чтобы пользователь имел возможность прокручивать, чтобы удалить выбранные курсы, но НЕ курсы, которые заполняют контроллер поиска, когда он активен. Шаблоны для удаления действия работают в обычном tableView. Когда searchController активен, я добираюсь до момента, когда кнопка удаления отключена. НО что я хочу сделать, так это то, что камеры не смогут скользить вообще, если активен searchController. Кажется, это не работает. Какие-либо предложения? Пожалуйста и спасибо.

Вот мой код:

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 

    if searchController.active { 

    UITableViewCellEditingStyle.None 

    } else { 

    let deletedValue = previousCoursesFromRealm[indexPath.row] 

    if editingStyle == UITableViewCellEditingStyle.Delete { 
     let realm = try! Realm() 
     try! realm.write { 
     realm.delete(deletedValue) 
     } 

    coursesTableView.reloadData() 

    } 
    } 
    } 

ответ

5

Я думаю, что метод, который вы ищете, tableView(_:canEditRowAtIndexPath:).

Возврат false в этом методе должен отключить действие салфетки. Затем вы можете связать это значение с вашим поисковым контроллером:

override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool { 
    return !searchController.active 
} 
+0

Спасибо, что сделал эту работу! – dcotter

Смежные вопросы