0

我正在使用具有主视图和详细视图的拆分视图控制器。我的详细视图控制器上有一个视图,其中包含一个用户输入字段,该字段应调用主视图控制器上的方法来更新数组。我在建立双方之间的通信时遇到了麻烦。我尝试使用 [masterViewController updateCalcs] 简单地调用该方法,但这似乎不起作用,并且出现以下错误:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-
[UINavigationController updateCalcs]: unrecognized selector sent to instance 0xb08d130'

任何人都可以通过一些示例代码或源来帮助我解释如何从另一个视图中准确地调用一个方法吗?

4

1 回答 1

0

最佳实践是使用委托。在您的 detailview.h 中添加:

@protocol TestDelegate <NSObject>
-(void)doSomeThing;
@end

@property (nonatomic, weak) id <TestDelegate> delegate;

在 detailview.m 中:

[self.delegate doSomeThing];

在创建详细视图后的 masterview.m 中添加:

detailView.delegate = self;

在 masterview.h 添加委托,如:

@interface MasterView : UIViewController <TestDelegate> {
于 2012-12-14T15:17:20.673 回答