Я постараюсь объяснить это как можно лучше, поэтому, пожалуйста, потерпите меня.
У меня есть табличное представление, заполненное ячейками, я пытаюсь сделать так, чтобы при нажатии 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)
}