여기 내 코드입니다.데이터가 적절한 시간에 전송되지 않습니다. 내 준비를위한 준비 기능
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Get Cell Label
let indexPath = tableView.indexPathForSelectedRow;
let currentCell = tableView.cellForRow(at: indexPath!) as! monthTableViewCell!;
valueToPass = (currentCell?.monthOutlet.text)!
print(valueToPass)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "toMonthVC") {
// initialize new view controller and cast it as your view controller
let viewController = segue.destination as! monthCellViewController
// your new view controller should have property that will store passed value
viewController.dataFromHoursVC = valueToPass
}
}
기본적으로 하나의 VC에서 다른 VC로 값을 전달하려고합니다. didSelectRow는 예상대로 완벽하게 작동합니다. 그러나 준비 기능이 늦게 실행 중입니다. 예를 들어, 코드가 처음 실행될 때 두 번째 vc는 전달 된 값을 nil로 간주합니다. 하지만 다시 돌아가서 다시 해보면 전달 된 가치가 나온다. 그러나 그 가치는 이전에 행해진 가치이다. 그래서 단순히 준비 기능이 뒤에 있거나 늦게 호출되는 것처럼 작동합니다.
'valueToPass' 선언을 보여 주시겠습니까? –
이것은 뒤로 호출 버튼을 누를 때마다 뷰가 삭제되고 두 번째로 다시 생성되므로 prepareforswgue가 늦게 호출되는 것과는 아무런 관련이 없습니다. 실제로 일어나는 일을 알기 위해 더 많은 것을 보여주세요 –
정확히'monthCellViewController'에서'dataFromHoursVC' 변수에 접근하고 있습니까? – Nef10