Versuchen, das Label für ausgewählte Zelle auf TableViewController Zwei zurück zu einem Label auf einer statischen Zelle auf TableViewController eins, wenn ich die Zurück-Taste drücken. Ich bekomme das richtige Etikett bei didSelectRowAtIndexPath()
. aber die Daten werden nicht zurückgegeben, wenn ich versuche, es zu drucken. Ich habe zahlreiche Szenarien ausprobiert und kam als letzter Ausweg hierher. jede Hilfe wäre dankbar, danke!Daten werden nicht an vorherigen Tableview-Controller zurückgegeben
Tableviewcontroller ein:
class SearchTableViewController: UITableViewController, SortProtocol {
var sort: String?
override func viewDidLoad() {
super.viewDidLoad(
SORTBYCELL.detailTextLabel?.text = sort
}
func passdata(sort: String?){
self.sort = (sort)
}
Tableviewcontroller Zwei:
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)
In vc2, müssen Sie einen Verweis auf VC1 erhalten und es an den Delegaten zuweisen. Verwenden Sie einen Navigationscontroller? – Shades
setzen Sie diese 'SORTBYCELL.detailTextLabel? .text = sort' 'in func passdata (sort: String?) {...}. Weil viewDidLoad nur einmal ausgeführt wird, wenn die Ansicht geladen wird – KSR