TableViewControllerで選択したセルにラベルを渡そうとしています.2つ前のBackViewボタンを押すとTableViewControllerの静的セルのラベルに戻ります。私はdidSelectRowAtIndexPath()
で正しいラベルを取得しています。データを印刷しようとするとデータは返されません。私は数多くのシナリオを試し、最後の手段としてここに来ました。どのような助けていただければ幸いですか? 1データは前回の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:
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)
vc1では、vc1への参照を取得してそれを代理人に割り当てる必要があります。ナビゲーションコントローラを使用していますか? – Shades
ビューをロードしたときにviewDidLoadが一度だけ実行されるため、この 'SORTBYCELL.detailTextLabel?.text = sort' 'をfuncのpassdata(ソート:文字列?){...}に配置します。 – KSR