【问题标题】:How to make a UIManagedDocument globally accessible to all ViewControllers in an app?如何使应用程序中的所有 ViewController 都可以全局访问 UIManagedDocument?
【发布时间】:2012-03-30 22:35:49
【问题描述】:

谁能告诉我如何使 UIManagedDocument 全局可访问?

【问题讨论】:

  • 我建议查看stackoverflow.com/questions/8388048/… 或几乎所有相关问题;据我所知,这个问题并不特定于UIManagedDocument;您基本上需要有关在 iOS 中干净地在对象之间共享数据的指导 - 要寻找的最佳术语可能是“单例”、“注入”和“共享模型”

标签: iphone objective-c ios5 xcode4


【解决方案1】:

我只是像任何其他属性一样将我的传递给我的不同视图控制器。

newViewController.thatManagedDocument = self.thisManagedDocument;

无需使其全局可访问。

【讨论】:

  • @JJW 不确定你的意思
  • 这是我的目标:
    (AT)property (nonatomic, strong) UIManagedDocument *deliveryDatabase;这是我的来源:
    (AT)property (nonatomic, strong) UIManagedDocument *deliveryDatabase;这是我按照您的建议做的尝试: ShiftAddTVC.deliveryDatabase = self.deliveryDatabase;我收到错误:
    在“ShiftAddTVC”类型的对象上找不到属性“deliveryDatabase”。
    我误解了你的指示吗?
  • 我认为你误解了Objective-C。我将假设 ShiftAddTVC 是一个类......所以类没有属性,只有实例有。您应该在该类的实例上调用它...ShiftAddTVC *satvc = [ShiftAddTVC alloc] init]; ... satvc.deliveryDatabase = self.deliveryDatabase.
  • ShiftAddTVC 是 CoreDataTableViewController 的一个实例。它在我的故事板中。 AllShiftsTVC 也是如此,Storyboard 中的初始表格视图控制器。所以从 AllShiftsTVC,在 -(void)viewDidLoad I [super viewDidLoad];然后 ShiftAddTVC.deliveryDatabase = self.deliveryDatabase;
  • 哦,天哪,你说得对,我什么都不懂!抱歉,我是 Microsoft ASP.NET 的顽固分子,试图扩大我的视野。你是老大!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 2022-08-16
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多