Просто добавьте оператор печати внутри categoryTapped.
Затем вы узнаете, действительно ли он прослушивается.
Миллион вещей может go ошибиться, для Например, вы можете забыть установить UIView для разрешения взаимодействия.
После проверки этого. Затем добавьте еще один оператор печати в categoryTapped, который показывает, является ли переменная delegate
нулевой.
Вы быстро обнаружите проблему, используя простые операторы печати.
print("I got to here!")
Это так просто.
А как насчет
if delegate == nil { print("it is nil!! oh no!" }
else { print("phew. it is NOT nil.") }
На этом уровне отладка действительно проста?
Далее добавьте оператор печати внутри setupExplore()
func setupExplore() {
print("setup explore was called")
....
Посмотрите, что произойдет.