我正在使用具有主视图和详细视图的拆分视图控制器。我有一个关于我的详细视图控制器的视图,它包含一个用户输入字段,该字段应调用主视图控制器上的方法来更新数组。我在建立双方之间的沟通方面遇到了麻烦。我曾尝试使用[masterViewController updateCalcs]简单地调用该方法,但这似乎无法正常工作并且出现以下错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-
[UINavigationController updateCalcs]: unrecognized selector sent to instance 0xb08d130'
任何人都可以通过一些示例代码或来源帮助我解释如何在另一个视图上调用方法的确切方法吗?
答案 0 :(得分:0)
最佳做法是使用代表。在你的detailview.h中添加:
@protocol TestDelegate <NSObject>
-(void)doSomeThing;
@end
@property (nonatomic, weak) id <TestDelegate> delegate;
详见view.m:
[self.delegate doSomeThing];
在创建详细信息视图后的masterview.m中添加:
detailView.delegate = self;
在masterview.h中添加委托,如:
@interface MasterView : UIViewController <TestDelegate> {