2016-04-19 10 views
0

XCode 7.3 Swift 2.2Viewcontroller-Schalter in einem schnellen und Verwendung von ungelöster Kennung

I 3 Viewcontrollers wechseln wollte:

ich die Standard-ViewController.swift gelöscht und erstellt eine SwitchingViewController.swift (Unterklasse von Viewcontroller) . Dies ist mein Code:.

blueViewController = stroryboard?.instantiateViewControllerWithIdentifier("Blue") as! BlueViewController 
blueViewController.view.frame = view.frame 
switchViewController(from: nil, to:blueViewController) 

Das Problem ist, „Verwendung von ungelösten Bezeichner 'switchViewController'

Ich habe versucht, die Standard-ViewController.swift, zu verwenden, und ich hatte immer noch das Problem

. Wie kann ich tun?

Dank.

+3

Nun, wenn es heißt 'SwitchingViewController' dann verwenden, anstatt' switchViewController'. Aber ich nehme an, Sie Methode in 'SwitchViewController' heißt' SwitchViewController', also müssen Sie 'SwitchingViewController.switchViewController()' – LinusGeffarth

+0

Verwenden Sie SwitchingViewController anstelle von SwitchViewController? –

+0

Können Sie zeigen, wie Sie Ihre Klasse und die Methode, die Sie aufrufen möchten, deklariert haben? – LinusGeffarth

Antwort

0

Sie sicher, dass alles, was Sie anrufen möchten, machen müssen, um noch erklärt wurde. Seit switchViewController wird nicht von Apple zur Verfügung gestellt, Sie müssen es selbst erstellen.

Wenn Sie die func switchViewController(to:from:)innerhalb die SwitchingViewController Klasse erstellen können Sie einfach anrufen, indem switchViewController(to:from:) (mit den Werten) eingeben.
Wenn Sie es von einer anderen Klasse aufrufen möchten, müssen Sie es anrufen auf die Klasse, in der es deklariert ist, wie folgt: SwitchingViewController.switchViewController(to:from:) (mit den Werten).

Ich hoffe, das hilft :)

P. S .: Wenn Sie einen einfachen Übergang zu einer Viewcontroller tun mögen, gibt es bereits Methoden von Apple geschrieben. Wenn Sie Storyboards verwenden, können Sie beispielsweise verwenden.

0

Sie verwenden also das Buch iPhone Development with Swift? Sie definieren diese Funktion nach ihrer Verwendung; ziemlich dumme Idee ihrerseits, weil es einen Fehler werfen wird und sie haben es im Text nicht klar gemacht, dass Sie es später schreiben.

Drehen Sie ein paar Seiten um und Sie werden sehen, dass sie die folgende Funktion definieren. Es könnte je nach Version des Buches unterschiedlich sein (meine ist schnell 2)

private func switchViewController(from fromVC:UIViewController?, to toVC:UIViewController?){ 
    if fromVC != nil { 
     fromVC!.willMoveToParentViewController(nil) 
     fromVC!.view.removeFromSuperview() 
     fromVC!.removeFromParentViewController() 

    } 

    if toVC != nil{ 
     self.addChildViewController(toVC!) 
     self.view.insertSubview(toVC!.view, atIndex: 0) 
     toVC!.didMoveToParentViewController(self) 
    } 

} 
Verwandte Themen