TableViewController에서 선택한 셀의 레이블을 전달하려고합니다. 두 개의 Back to Back 단추를 눌렀을 때 TableViewController에서 정적 셀의 레이블로 돌아갑니다. 임이 didSelectRowAtIndexPath()
에서 정확한 라벨을 얻었습니다. 하지만 데이터를 인쇄하려고하면 다시 전달되지 않습니다. 나는 여러 가지 시나리오를 시도하고 최후의 수단으로 여기 왔습니다. 어떤 도움을 주셔서 감사합니다 감사합니다!데이터가 이전 tableview 컨트롤러로 다시 전달되지 않습니다
tableviewcontroller 하나
class SearchTableViewController: UITableViewController, SortProtocol {
var sort: String?
override func viewDidLoad() {
super.viewDidLoad(
SORTBYCELL.detailTextLabel?.text = sort
}
func passdata(sort: String?){
self.sort = (sort)
}
TableViewController 2 : 당신이 (예를 들어 그것을 중단 점을 설정하여) delegate
이 nil
아니라는 것을 확인하는 경우
protocol SortProtocol {
func passdata(sort: String?)
}
class SortByTable: UITableViewController {
var delegate: SortProtocol?
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let current = tableView.cellForRowAtIndexPath(indexPath)! as UITableViewCell
let sort = current.textLabel!.text!
self.delegate?.passdata(sort)
VC2에서, 당신은 VC1에 대한 참조를 가져 및 대리자에 할당해야합니다 같이 따라서, SortByTable에
viewDidLoad()
는 볼 것이다. 네비게이션 컨트롤러를 사용하고 있습니까? – Shades뷰를로드 할 때 viewDidLoad가 한 번만 실행되기 때문에이 'SORTBYCELL.detailTextLabel? .text = sort' '을 func passdata (sort : String?) {...}에 넣으십시오. – KSR