在iphone中将数据发送到上一个视图的可能方法有哪些。不使用Appdelegate。因为我的视图类有可能再次实例化。
答案 0 :(得分:3)
我认为最好的方法是使用NSNotificationCenter
类。
基本上,您所做的是将一个对象(作为观察者)注册到通知中心。
例如,如果您有对象A
和B
。 A
注册为观察员。现在让我们说A
是您正在讨论的“上一个”对象,您可以B
向通知中心发送通知(数据或消息),然后通知对象A
(和任何其他注册观察员)。
示例:强>
在文件ClassA.m
注册中,如下所示:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didSomething:) name:@"SomethingHappened" object:nil];
didSomething
是接收对象B
发送的通知的方法。这看起来像
- (void) didSomething: (NSNotification *) notify {
...
}
最后,您从ClassB.m
中的任何方法发送以下消息,以通知/发送数据到对象A
[[NSNotificationCenter defaultCenter] postNotificationName:@"SomethingHappened" object:self userInfo:your_data];
似乎很复杂,但在我看来这是最好的方法(一旦你理解它就很简单:)。
答案 1 :(得分:0)
有几种方法可以实现数据共享,其中Singleton Objects是最受欢迎的对象之一:
答案 2 :(得分:0)
如果要与之通信的视图是父视图(例如,前一个视图的视图控制器是您创建此视图的位置),那么您可能希望处理在前一个视图控制器中关闭视图。执行此操作时,您可以读取已更改的数据并使用新数据更新以前的视图控制器。
然后在上一个视图控制器的viewWillAppear:方法中,更新实际视图以反映视图控制器的当前状态。
编辑:我刚刚注意到你的newView是透明的。如果是这种情况,那么您当然希望通过视图控制器路由所有逻辑。您应该只有一个具有可见视图的视图控制器。