2016-04-09 4 views
-1

Error in App.Deleagte and LayouApp.Delegate TabController Swift

Hallo ..

Ich brauche meine Tab-Controller in meinem App.deletgate als meine rootcontroller zu erklären, aber ich muss auch meine managedObjectContext in meinem zweiten View-Controller erklären. Hat jemand irgendwelche Ideen, wie man das macht?

Ich habe ein Bild meiner Projektstruktur oben

App.Delegate mit Errors import UIKit import Coredata

@UIApplicationMain 
    class AppDelegate: UIResponder, UIApplicationDelegate { 

var window: UIWindow? 


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil) 

    let rootNavigationController = mainStoryboard.instantiateViewControllerWithIdentifier("StoryboardIDRootNavigationController") as! UITabBarController 

    // Configure View Controller 
    let viewController = window?.rootViewController as? ViewController 

    if let viewController = viewController{ 
     viewController.managedObjectContext = self.managedObjectContext 
    } 

    // Configure Window 
    window?.rootViewController = rootNavigationController 

return true 

} 

Antwort

0

UITabBarController hat eine Viewcontrollers Eigenschaft stellen, die ein Array von der Wurzel View-Controller, die in der Tab-Leiste angezeigt werden. Sie können dies verwenden, um den Controller am zweiten Index abzurufen.

Der Standardwert dieser Eigenschaft ist null. Wenn Sie einen Tab-Bar-Controller konfigurieren, können Sie mit dieser Eigenschaft den Inhalt für jede Registerkarte der Tab-Leiste angeben. Die Reihenfolge der View-Controller im Array entspricht der Anzeigereihenfolge in der Tab-Leiste. Somit entspricht der Controller bei Index 0 dem Tab ganz links, der Controller bei Index 1, der nächste Tab rechts usw. Wenn es mehr View-Controller gibt, als in die Registerkartenleiste passen, werden die View-Controller am Ende des Arrays vom More-Navigations-Controller verwaltet, der selbst nicht in diesem Array enthalten ist.

let tabController = UITabBarController() 

class CustomViewController: UIViewController { 
    var managedObjectContext: NSManagedObjectContext? 
} 

if let viewController = tabController.viewControllers?[1] as? CustomViewController { 
    viewController.managedObjectContext = self.managedObjectContext 
} 
+0

u kann ein Beispiel geben? – MettyHat

+0

Ich erhalte die Fehlermeldung, dass der Anwendungsdelegate kein Mitglied hat. Self.managedObjectContext ... – MettyHat

+0

Haben Sie einen Core Data Stack eingerichtet? Wenn ja, wo haben Sie es initialisiert? –