사용자가 행을 선택하면 (테이블이 하나의 배열로만 구성됨) 다른 VC로 이동하도록 설정된 UITableView가 있습니다. 선택한 항목의 행 인덱스를 전달하고 싶습니다. didSelectRowAtIndexPath
을 사용하여 selectedCellIndex
이라는 변수를 행 인덱스에 설정합니다. 그러나, 나는 또한 다음 VC로 이동하도록 tableView를 설정 했으므로 prepareForSegue
은 didSelectRowAtIndexPath
과 같이 (또는 거의 같은 시간에) 발생합니다. 결과적으로 목록에서 항목을 처음 선택하면 전송 된 값은 nil이되고 나면 선택한 행의 이전 값을 항상 가져옵니다. 앱이 일시 중지하지 않고 다음 세그먼트로 넘어 가기 전에 변수가 설정되었는지 확인하는 방법에 대한 아이디어가 있습니까? 당신은 직접 indexPathForSelectedRow
방법을 사용하여 테이블보기에서 선택된 인덱스 경로를 얻을 수 있습니다세그 전이 발생하기 전에 변수를 설정하십시오.
var selectedCellIndex:Int!
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
var indexPath = tableView.indexPathForSelectedRow() as NSIndexPath?
selectedCellIndex = indexPath?.row as Int?
}
//SEGUE
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "signature" {
let vc = segue.destinationViewController as SignatureViewController
vc.index = "\(selectedCellIndex)"
}
}
감사
Yeap, 당신 말이 맞아요. 이게 어리석은 질문 인거 같아. – boidkan