2016-07-23 23 views
1

Ich habe ein StoryboardManager Objekt erstellt, das alle Storyboards und alle ViewController IDs an einem Ort verwaltet. Ich bin ein Fehler für OnboardingOne auf der zweiten Getter-Methode erhalten, die ist:Swift: Verwendung des nicht deklarierten Typs 'ViewController'

Verwendung von Schwarz Typ "OnboardingOne"

Der Code für die StoryboardManager Objekt ist:

class StoryboardManager: NSObject { 

    class func login() -> UIStoryboard { 
     return UIStoryboard(name: "Login", bundle: nil) 
    } 

    class func CameraView() -> UIStoryboard { 
     return UIStoryboard(name: "CameraView", bundle: nil) 
    } 

    class func OnboardingOne() -> UIStoryboard { 
     return UIStoryboard(name: "OnboardingOne", bundle: nil) 
    } 

    class func MainView() -> UIStoryboard { 
     return UIStoryboard(name: "MainView", bundle: nil) 
    } 

    // MARK: viewController getter methods 
    class func loginViewController() -> Login { 
     return login().instantiateViewControllerWithIdentifier("Login") as! Login 
    } // NO ERRORS 

    class func OnboardingViewController() -> OnboardingOne { 
     return OnboardingOne().instantiateViewControllerWithIdentifier("OnboardingOne") as! OnboardingOne 
    } //ERROR: Use of undeclared type "OnboardingOne" 

} 

Ich habe keine Ahnung, was das bedeutet oder wie ich es umgehen kann, also wäre jede Information hilfreich.

Danke

Antwort

0

Es bedeutet, was es sagt. Sie haben eine Funktion zurückzukehren etwas vom Typ OnboardingOne erklärte:

class func OnboardingViewController() -> OnboardingOne { // <<-- here 
    return OnboardingOne().instantiateViewControllerWithIdentifier("OnboardingOne") as! OnboardingOne 
} 

Vielleicht haben Sie gemeint:

class func OnboardingViewController() -> ViewController { ... 
+0

Dank. OnboardingOne ist eine Klasse. Wie Login in der obigen Methode, obwohl Login keinen Fehler bringt. Also verstehe ich nicht, was das Problem ist? –

+0

Ich sehe nicht, dass Sie OnboardingOne als Klasse irgendwo im Code definieren, den Sie gepostet haben. Stattdessen definieren Sie es als eine Klassenfunktion. –

Verwandte Themen