2

我正在尝试确定将数据从 UISplitViews Master 发送到其详细信息的最佳做法。我想尽量避免导入标头并使代码尽可能可重用。我觉得应该有一个非常好的方法来做到这一点,但我能想到的最好的方法是声明一个协议,但有时协议会变得有点混乱恕我直言。并通过使用与细节交谈

[self setDelegate:id<myProtocol>)self.splitViewController.viewControllers objectAtIndex:1]];

似乎有点片状

有任何想法吗?

4

2 回答 2

5

如果您不想相互导入标头并且不想使用委托,我唯一能想到的就是使用通知:

在 Objective-C 中通过 NSNotificationCenter 发送和接收消息?

您可以将字典中的信息传递给通知

于 2013-06-04T11:34:05.377 回答
0

您可以继续使用您的 appDelegate 来保存不同的变量并从您的视图控制器访问它们。但我建议创建一个新的 Singleton 类来为你做这件事。

例如,创建一个名为 eg Holder.h+的类.m并声明所有需要的变量。

。H:

@property (nonatomic, strong) NSArray *someArray;

.m

+(id)sharedHolder{
static Holder *holder = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    holder = [[self alloc] init];
});
return holder;

}

现在你可以通过做设置你的变量[[Holder sharedHolder] setSomeArray:anotherArray],然后像这样从其他地方读取它:[[Holder sharedHolder] someArray]

编辑:您也可以使用 Antonio 的方法NSNotification

于 2013-06-04T11:39:06.930 回答