а можно код в нормальном виде? Зачем вызывать @objc в viewDidLoad? Она срабатывает каждый раз, когда загружается вью, в твоем случае наверняка 1 раз
До этого было через uitapgesturerecognizer, и он и кнопка и аутлеты через гуй в xcode создавались - все пахало вроде как нужно. А вот решил все объекты создавать прямо в коде и поломалось :-(