0

我如何将数据传递回父视图控制器。我使用 addSubView 方法来显示子视图。

addFields = [[AddFields alloc] initWithNibName:@"AddFields" bundle:nil];
[self.view addSubview:addFields.view];

现在我想将数据从“AddFields”视图发送到我的父控制器。我怎样才能做到这一点。谁能帮我..

4

3 回答 3

6

一种简单的方法是使用NSNotificationCenter看这个例子

当您想发送对象时,从您的 AddFields 向您发布通知

[[NSNotificationCenter defaultCenter] postNotificationName:@"notificaiton_name" object:object_you_want_to_send];

并在您的父视图控制器中为 NSNotificationCenter 添加观察者

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(method_you_want_to_call:) name:@"notificaiton_name" object:nil];

定义你的method_you_want_to_call:像这样

-(void) method_you_want_to_call:(NSNotification *) obj{
     //lets say you are sending string as object
     NSString *string=(NSString *) [obj object] ;
}

注意:notificaiton_name必须匹配

您可以使用委托协议方法的其他方式...请参阅此示例

于 2012-09-21T05:29:28.230 回答
3

使用Delegate在子视图和父视图之间向后传递数据。

于 2012-09-21T04:57:25.937 回答
0

最常用的方法如下:首先在父控制器中初始化一个string/int/float/..(根据你的需要)。例如:NString *string;

然后在 AddFields 视图中,导入父控制器,然后创建父控制器视图的对象。

ParentViewController *object=[[ParentViewController alloc]initWithNibName:@"ParentViewController" bundle:nil];

            object.string=theValueYouWantToPass;
于 2012-09-21T07:01:23.523 回答