应用程序.代理选项卡控制器Swift
嗨 我需要在App.deletgate中将我的选项卡控制器声明为我的rootcontroller,但我还需要在第二个视图控制器中声明我的managedObjectContext。有人对如何做到这一点有什么想法吗 我在上面的项目结构中添加了一个图像 App.Delegate有错误 导入UIKit 导入CoreData应用程序.代理选项卡控制器Swift,swift,appdelegate,Swift,Appdelegate,嗨 我需要在App.deletgate中将我的选项卡控制器声明为我的rootcontroller,但我还需要在第二个视图控制器中声明我的managedObjectContext。有人对如何做到这一点有什么想法吗 我在上面的项目结构中添加了一个图像 App.Delegate有错误 导入UIKit 导入CoreData @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window:
@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
}
UITabbarController有一个viewControllers属性,它是选项卡栏显示的根视图控制器数组。您可以使用它在第二个索引处获取控制器 此属性的默认值为零。配置选项卡栏控制器时,可以使用此属性为选项卡栏界面的每个选项卡指定内容。阵列中视图控制器的顺序与选项卡栏中的显示顺序相对应。因此,索引0处的控制器对应于最左边的选项卡,索引1处的控制器对应于右边的下一个选项卡,依此类推。如果视图控制器的数量超出了选项卡栏的容纳范围,则阵列末端的视图控制器由更多导航控制器管理,该控制器本身不包括在此阵列中
你能举个例子吗?你有核心数据栈吗?如果是,您在哪里初始化它?
let tabController = UITabBarController()
class CustomViewController: UIViewController {
var managedObjectContext: NSManagedObjectContext?
}
if let viewController = tabController.viewControllers?[1] as? CustomViewController {
viewController.managedObjectContext = self.managedObjectContext
}