在第三个和第一个视图控制器之间传递数据
Posted
技术标签:
【中文标题】在第三个和第一个视图控制器之间传递数据【英文标题】:Pass data between third and first view controller 【发布时间】:2013-07-16 15:41:47 【问题描述】:我有三个视图控制器,A、B 和 C。 A --modal--> B ---推送 --> C
如何从 C --> A 传递数据?我尝试过使用协议和委托。但是我在 A 中的委托方法永远不会被调用。
【问题讨论】:
您必须发布一些代码,否则没有人可以帮助您。 @jszumski:我还没有任何代码。我的问题是理论上的问题。如果 A 没有实例化视图控制器 C,A 如何知道在 C 中创建的数据? 在下面查看我关于使用 NSNotificationCenter 的回答。检查链接以获取详细信息,以确保它能够完成您需要完成的工作。 【参考方案1】:您可以通过使用NSNotificationCenter
来执行此操作,请参阅this post,我遇到了类似的问题。这个问题可能并不完全适用,但答案为您提供了一个可能的解决方案。另请阅读here 了解更多数据。
【讨论】:
【参考方案2】:或者您可以使用您的 AppDelegate 保存 A 的引用,然后从那里开始工作。
【讨论】:
【参考方案3】:您可以在会话中存储数据(创建单例对象)并随心所欲地访问它
@interface Session : NSObject
+(Session*) session;
@property (nonatomic) id data_to_access;
@end
@implementation Session
+(Session *)session
static Session *sharedSingleton;
@synchronized(self)
if (!sharedSingleton)
sharedSingleton = [[Session alloc] init];
return sharedSingleton;
@end
【讨论】:
以上是关于在第三个和第一个视图控制器之间传递数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 prepareForSegue 在视图控制器之间传递数据
如何在两个由UITabBarController分隔的视图控制器之间传递数据?