Переход через кнопку в табличном представлении выполняет 2 перехода вместо одного

Я сделал контроллер tableview и добавил кнопку внутри ячейки прототипа. Затем я создал новый файл swift для этой ячейки, в который перетащил эту кнопку.

Затем я создал новый файл таблицы и добавил изображения, которые должны отображаться внутри кнопки. Все идет нормально.

Проблема заключается в следующем: я хотел выполнить переход с каждой из кнопок, каждая из которых имеет свой собственный контроллер представления (это было проще, чем использование основного и подробного контроллера представления, поскольку они все действительно разные). Моя проблема заключается в следующем: я ожидал, что это будет работать нормально, используя этот код:

cell.sportButton.tag = indexPath.row
cell.sportButton.addTarget(self, action: #selector(TableViewControllerSport.buttonClicked), forControlEvents: .TouchUpInside)

Функциональная кнопкаНажмите:

 func buttonClicked(sender: UIButton)
{
    let buttonRow = sender.tag

    if buttonRow == 0 {
        self.performSegueWithIdentifier("segueSportinfrastructuur", sender: self)
    }
    else if buttonRow == 1 {
        self.performSegueWithIdentifier("segueSportdienst", sender: self)
    }
    else if buttonRow == 2 {
        self.performSegueWithIdentifier("segueSportraad", sender: self)
    }
    else if buttonRow == 3 {
        self.performSegueWithIdentifier("segueSportverenigingen", sender: self)
    }
    else if buttonRow == 4 {
        self.performSegueWithIdentifier("segueGsport", sender: self)
    }
    else if buttonRow == 5 {
        self.performSegueWithIdentifier("segueSportactiviteiten", sender: self)
    }

}

Какие ссылки на разные сегы. Проблема заключается в следующем: когда я нажимаю одну из кнопок, она всегда сначала выполняет "segueSportinfrastructuur", а после этого выполняет эту процедуру. Поэтому, когда я нажимаю кнопку "Назад", приложение возвращается к ВК "Sportinfrastructuur", поэтому мне нужно снова нажать кнопку "Назад", чтобы вернуться к tableView.

Любой, кто знает, как это исправить, будет очень признателен!

2 ответа

Решение

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

Второй может звонить из вашего кода.

Разве это не должно быть проще с помощью didSelectRowAtIndexPath? Вот отличный пример. Как получить textLabel выбранной строки в swift?

Другие вопросы по тегам