Открыть новый VC при нажатии TableViewCell - PullRequest
0 голосов
/ 15 марта 2019

Я постараюсь объяснить это как можно лучше, поэтому, пожалуйста, потерпите меня.

У меня есть табличное представление, заполненное ячейками, я пытаюсь сделать так, чтобы при нажатии tableViewCell открывался VC с деталями объекта, описанного ячейкой.Я думал, что это работает, но я заметил, что если вы вернетесь из нового VC обратно на страницу с tableView, а затем нажмете на другую ячейку, он выполнит переход, как если бы он шел на новую страницу, но все равно показываетстраница с табличным представлением до тех пор, пока вы не коснетесь экрана (где угодно)

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

Обратите внимание, что причина, по которой я не использую встроенную функцию segue, предоставляемую xCode, заключается в том, что это настраиваемая анимация, поэтому любое решение, которое покончит с настраиваемой анимацией, не будетработа.

Очень неприятно иметь что-то почти работающее, но потом мелкие детали ломают это.Любые рекомендации приветствуются, спасибо (код ниже)

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let exerciseDetailsVC = storyboard?.instantiateViewController(withIdentifier: "ExerciseDetailsVC") as! ExerciseDetailsVC
    exerciseDetailsVC.exerciseIndex = indexPath.row
    presentDetail(exerciseDetailsVC)
}

РЕДАКТИРОВАТЬ: Запрошенная функция presentDetail

 func presentDetail (_ viewControllerToPresent: UIViewController){
    let transition = CATransition()
    transition.duration = 0.2
    transition.type = CATransitionType.push
    transition.subtype = CATransitionSubtype.fromRight

    self.view.window?.layer.add(transition, forKey: kCATransition)

    present(viewControllerToPresent, animated: false, completion: nil)
}

1 Ответ

0 голосов
/ 15 марта 2019

Проблема заключалась в том, что в настоящее время существует ошибка с xCode, которая приводит к тому, что любой tableViewCell без типа выбора останавливает анимацию.Требуется другое действие (любое действие, включая встряхивание телефона), чтобы разморозить.Решение найдено и объяснено лучше здесь.Извините, я не смог объяснить это достаточно хорошо.

presentViewController: animated: представление YES не появится, пока пользователь снова не нажмет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...