Swift - so laden Sie eine xib-Datei aus einem view controller im Storyboard?
Ich habe eine MainViewController.swift und es ist verbunden mit einer Xib-Datei (genannt MainViewController). Die MainViewController verbunden ist MenuViewController.swift und seine Xib(genannt MenuViewController). Die MainViewController ruft die MenuViewContoller mit dem folgenden code,
override func viewDidLoad() {
super.viewDidLoad()
...
menuBtn.addTarget(self, action: #selector(callMenuModal), forControlEvents: .TouchUpInside)
....
}
func callMenuModal() {
let menuVC = MenuViewController()
menuVC.delegate = self
menuVC.modalPresentationStyle = .OverCurrentContext
presentViewController(menuVC, animated: false, completion: nil)
}
.......
func backFromMenu() {
self.dismissViewControllerAnimated(true, completion: nil)
}
...
...
Meine Freunde haben ein story-board mit einer Menge leitet über und ViewControllers.
Muss ich jetzt laden meine .xib-Datei und den zugehörigen view-controller, wenn eine Taste gedrückt wird von einem ViewController auf dem story board. Ich schaute hoch und niedrig für eine Lösung und konnte keinen finden.
Zuvor rief ich meinen xib direkt aus dem AppDelegate so hatte ich nicht zu tun, irgendeine Sache. Ich hatte nur einen view controller im Storyboard und eine app delegate für die ganze app, der code, den ich verwendet in die Stellvertretung ist wie unten angegeben,
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.mainScreen().bounds)
let mainViewController = MainViewController(nibName: "MainViewController", bundle: nil)
window?.rootViewController = mainViewController
window?.makeKeyAndVisible()
return true
}
........rest of app delegate....
Aber ich weiß nicht wie ich zum laden der xib-Datei, aus einer anderen view controller im storyboard oder eine Taste drücken(IBAction) von einem ViewController.
InformationsquelleAutor Shyam Raju | 2016-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht direkt segue zu Ihrem
MainViewController
aus dem storyboard. Aber Sie können laden Sie es und zeigen Sie es, wie Sie Ihre app zu delegieren.Wie wollen Sie die Anzeige
MainViewController
? Schieben Sie es auf einen navigationsstapel, Modal, etwas anderes? Ich nehme an, Sie sind mit einemUINavigationController
und Sie wollen, schieben Sie es auf den Stapel.In Ihrem Freundes
UIViewController
Klasse eine Methode hinzufügen, laden und präsentieren Sie IhreMainViewController
:InformationsquelleAutor dylansturg
Gelöst...es war direkt vor meinen Augen, ich glaube ich hatte zu Fragen Sie die Frage, schreiben Sie die Antwort selbst, haha, ich bin so smart, ich habe diesen code in die view-controller aus dem story-board und es funktioniert wie ein Charme.
in meinem xib-view-controller Hinzugefügt habe ich eine return-Aktion
Danke Jungs!!
Btn
undbackFromM
empfehle ich Ihnen, Lesen Sie die Swift-API-Design-Richtlinien über Abkürzungen.InformationsquelleAutor Shyam Raju
Laden Sie eine view-controller und seinen zugeordneten nib-Datei genau so, wie Sie tun es bereits in deinem code:
Instanziieren der view-controller, und wenn Sie oder drücken, um die Ansicht geladen werden, die aus der Feder und werden in die Schnittstelle.
InformationsquelleAutor matt
Als Klassenvariable zuweisen:
Zuordnung zu der entsprechenden Klasse, die aus der Feder.
Innerhalb der view-controller, wo immer Sie laden möchten, an der Spitze, rufen Sie
Stellen Sie sicher, dass die "NibView" == den Namen der Nib-UI-Datei. Dann müssen Sie es als eine Untersicht etwa so:
Nun wird dies tun die meisten der Arbeit für Sie, aber ich würde empfehlen, die Animation als gut. Es gibt ein paar verschiedene Möglichkeiten, dies zu tun, aber eine, die ich Häufig benutze ist wie folgt:
Beliebigen Zeitpunkt nach dem Sie ordnen die nibName es die entsprechende Klasse, die Sie zuweisen können, dessen lokale Variablen in deinem viewController. Sie können auch wählen zu animieren, die Spitze mit x-Positionen, wenn Sie bevorzugt werden. Würde ich die gleiche Funktion mit der y-Werte vertauscht, um es zurück zu senden, die offscreen sind, wenn Sie fertig mit ihm.
InformationsquelleAutor Sethmr