Wie kann ich call presentViewController in UIView-Klasse?
Gibt es eine eigene Registerkarte in meinem Projekt, das auf jedem Bildschirm der app, so dass ich benutzerdefinierte UIView
Klasse und xib
Datei und zusätzlichen Tasten in Ihnen. Nun will ich meine buttons für die Navigation auf verschiedenen Bildschirmen mit unterschiedlichen story board
- ids. Aber ich kann Sie nicht anrufen presentViewController
aus UIView
Klasse. Früher habe ich benutzerdefinierte Funktion in extension
Klasse für die Navigation zwischen Bildschirmen, aber UIView
- Klasse kann auch nicht so nennen, die Funktion.
import UIKit
@IBDesignable class tab: UIView {
var view: UIView!
@IBAction func btn1(sender: UIButton) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("6")
self.presentViewController(vc, animated: true, completion: nil)
}
override init(frame: CGRect) {
super.init(frame: frame)
xibSetup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
xibSetup()
}
func xibSetup() {
view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
addSubview(view)
}
func loadViewFromNib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: "tab", bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
}
- haben Sie vielleicht eine Blick auf dieses stackoverflow.com/questions/29094106/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Rufen Sie diese Funktion auf Ihrem button
Dieser Funktion erstellen Sie root-view-controller
Dieser obige code muss funktionieren, es ist für mich arbeiten in Swift 2.1
Können Sie delegieren. Fügen Sie diese auf der Registerkarte Klasse
In der viewController, wo die Tab.
Legen Sie die delegieren, wie dies
Dann schieben Sie den neuen viewController in der delegate-Methode
Und Sie können eine BaseViewController um dies zu tun, dann werden alle viewController Unterklasse haben kann, die die gleiche Funktion.
Hinzufügen einer Eigenschaft zu dieser Klasse, dann können die Methoden von controller.
schwach var controller:UIViewController!
selbst.controller?.presentViewController(vc, animated: true, completion: nil)