Ich habe ViewController mit segue zu secondViewController namens "toSecond". In Viewcontroller laden i customView.xibWie performSegueWithIdentifier von Xib aufrufen?
let myCustomView = NSBundle.mainBundle().loadNibNamed("customView", owner: self, options: nil)[0]
in diesem Custom haben i-Taste mit der Aktion:
viewController().goToSecond()
in Viewcontroller habe ich Funktion mit diesem Code
func goToSecond() {
self.performSegueWithIdentifier("toSecond", sender: self)
}
aber wenn ich gedrückt button in customView ich werde ein fehler:
viewController has no segue with identifier 'toSecond'
Wenn ich diese Funktion direkt von ViewController aufrufen, funktionieren alle großartig!
Also, wie kann ich PerformSegueWithIdentifier von meinem CustomView aufrufen?
Custom Quellcode:
import UIKit
class customView: UIView {
@IBAction func ToSecondButton(sender: AnyObject) {
viewController().goToSecond() }
}
Viewcontroller-Quellcode:
import UIKit
class viewController: UIViewController {
...
let myCustomView = NSBundle.mainBundle().loadNibNamed("customView", owner: self, options: nil)[0]
self.view.addSubview(myCustomView)
func goToSecond() {
self.performSegueWithIdentifier("toSecond", sender: self)
}
...
}
Wenn der Besitzer der Datei für die benutzerdefinierte Ansicht der View-Controller ist, ich verstehe nicht, wie dieser Code: ' viewController(). goToSecond() ' ist in Ihrer benutzerdefinierten Ansicht enthalten. Können Sie mehr Quellcode für Ihre benutzerdefinierte Ansicht bereitstellen? Wie erstellen Sie einen Verweis auf den View-Controller in der benutzerdefinierten Ansicht? –
ich präsentiere customView in der Darstellung von viewController ... Mein Übergang zwischen viewController und secondViewController ... ich kann func goToSecond() direkt von viewController aufrufen, kann aber nicht von customView! wenn in der Funktion goToSecond etwas wie print schreiben ("Click!") sehe ich diesen Klick im Log! – Dmitry
In der Zukunft möchte ich Sie ermutigen, bei [Konventionen für die Namenskonvention] zu bleiben (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingBasics.html#//apple_ref/doc/uid/20001281-1002242-BBCIJGDB), wobei alle Klassennamen mit Großbuchstaben beginnen. Das war unnötig verwirrend ... – Rob