Я пытаюсь сделать противоположное тому, что просят большинство людей в этой теме. Большинство людей хотят, чтобы кнопка в ячейке табличного представления вызывала метод в их таблице VC/VC. У меня уже есть протокол, делающий это.
Проблема/вопрос
Сейчас я пытаюсь добавить обратное: мне нужно нажать кнопку на моем основном ViewController (в котором находится моя таблица), чтобы вызвать метод в моем классе CusomTableViewCell (примечание: кнопка, нажатая на основном VC, не находится в таблице) . У меня создан класс протокола и написана функция, но я не знаю, как установить CustomCellViewClass в качестве делегата. Когда я сделал наоборот, я вставил cell.delegate = self в метод cellForRowAtIndexPath. Я также использовал prepareForSegue для назначения делегата. Но без перехода и теперь с методом создания ячеек я потерялся!
Пример желаемой функции
Моя конечная цель состоит в том, что нажатие кнопки в основном VC изменит название кнопки в ячейках. Простым примером может быть то, что у меня есть одно представление с одной таблицей, при нажатии кнопки содержимое таблицы переключается между двумя массивами, автомобилями и мотоциклами. Когда в таблице показаны автомобили, все заголовки кнопок ячеек должны выглядеть так: «Смотрите внутрь», но при отображении кнопки мотоцикла они должны читаться «Смотрите ближе».
Код
Я уже написал функцию, которую я хочу, чтобы ячейка выполняла:
func cellButton_Title_Switch (currentList: String) {
if vcState == "cars" {
cellButton.setTitle("Look inside", forState: UIControlState.Normal)
}
else {
cellButton.setTitle("Look closer", forState: UIControlState.Normal)
}
}
Я создал протокол:
protocol delegateToChangeCellBut {
func cellButton_Title_Switch (currentList: String)
}
У меня есть self.delegate.cellButton_Title_Switch(currentList) в моей кнопке VC, и протокол добавлен в объявление моего пользовательского класса ячеек. Но как мне сделать эту последнюю недостающую часть в пользовательском классе ячеек, где я назначаю класс делегату?