xcode4:如何从另一个视图调用动作?

时间:2012-01-26 18:34:40

标签: iphone xcode

假设我有一个mainView,从它推送到subView。

我可以通过此代码将值从subView发送到mainView

mainView *main = [[mainView alloc] initWithNibName:nil bundle:nil];
main.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:main animated:YES];

此代码很好地从subView发送文本字段值到mainView

NSString *text1 = field1.text;

[[mainView label1] setText:[NSString stringWithString:(NSString *)text1]];

如果我在mainView中有一个名为action1的动作,我想在从subView回来时调用它怎么办?那是什么代码?

提前谢谢你:)

2 个答案:

答案 0 :(得分:3)

在您的子视图(您要呼叫的地方)中输入

[[NSNotificationCenter defaultCenter] postNotificationName:@"uniqueName" object:anyObjectYouWantToPassToMain];

在你的mainView(viewDidLoad)中放

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

执行postNotification时,您的main将调用方法yourMethodName

答案 1 :(得分:0)

这是一个常见的问题。当推送另一个viewController,并希望将信息返回到推送它的控制器时,推荐的方法是为第二个视图控制器声明一个委托协议,并声明你的第一个视图控制器来实现该委托。委托方法是简单地将信息传递回第一个视图控制器以供其处理的方法。

如果你想在工作中看到一个简单的例子,我不久前写了一个小样本项目你可以下载。 Delegation Example