aufrufen Ich habe gelesen this thread (und ähnliche andere) von unten nach oben, aber es passt überhaupt nicht meine Bedürfnisse.Swift/wie Delegat mit popViewController
Ich habe eine UIViewController
innerhalb UIPageViewController
innerhalb einer UINavigationController
. Navigieren zu einem zweiten ViewController. Zu einem dritten ViewController navigieren und zum zweiten ViewController zurückkehren, der Daten liefert.
Mein Code zur Zeit:
protocol PassClubDelegate {
func passClub(passedClub: Club)
}
class My3rdVC: UIViewController {
var clubs: [Club] = []
var passClubDelegate: PassClubDelegate?
....
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let club = clubs[indexPath.row]
self.passClubDelegate?.passClub(club)
navigationController?.popViewControllerAnimated(true)
}
Mein 2. VC:
class My2ndVC: UIViewController, PassClubDelegate {
var club = Club()
func passClub(passedClub: Club) {
SpeedLog.print("passClub called \(passedClub)")
club = passedClub
}
passClub
wird nicht aufgerufen. Ich bin mir sicher, dass ich den Delegaten nicht auf My2ndVC gesetzt habe, aber wie würde ich das tun? Alle Lösungen, die ich gefunden haben möchte, verwenden ich a) segue oder b) instantiiert ein My2ndVC neu, was keinen Sinn macht, da es immer noch im Speicher ist und ich zurück in die Hierarchie zurückkehren möchte. Was vermisse ich? Was sind meine Möglichkeiten? Hilfe wird sehr geschätzt.
PS: Ich benutze keine segues. My3rdVC heißt von:
let vc = stb.instantiateViewControllerWithIdentifier("My3rdVC") as! My3rdVC
self.navigationController?.pushViewController(vc, animated: true)
Ich verwende keine segues. –
aber natürlich, upvote für Ihre Mühe. Danke –
Sie können den Delegierten übergeben, nachdem Sie 'My3rdVC' instanziiert haben, aber bevor Sie ihn auf den Navigationscontroller-Stack – Callam