我在尝试从父视图的子视图处理事件时遇到问题,现在我有一个UIViewController,它有一个subView另一个UIViewController,在这个子视图中我有一个分页scrollView,我想要解雇一个当我滑动子视图滚动视图时父视图上的方法,你对我如何开发这个有什么建议吗?谢谢
答案 0 :(得分:0)
您可以将父视图作为子视图的委托。
将其添加到SubView.h:
// add
@protocol SubViewClassNameDelegate
@required
- (void)triggerMethodFromSubView:(NSString *)value;
@end
//
@interface SubViewClassName : UIView
// add
@property (nonatomic, assign) id<SubViewClassNameDelegate> delegate
//
@end
然后在父视图类中,将其添加到ParentView.h:
@interface ParentViewClassName : UIView /* add -> */ <SubViewClassNameDelegate>
并在子视图实例化后立即在ParentView.m中显示:
[mySubView setDelegate:self];
最后,在ParentView.m中的某处添加委托触发器方法:
- (void)triggerMethodFromSubView:(NSString *)value {
// do stuff
}
现在,您可以在子视图类中的任何位置调用[self.delegate triggerMethodFromSubView:@"Hello World"]
,它将告诉父视图调用您的委派方法。
如果您需要其他信息,请参阅以下有用教程:http://www.alexefish.com/post/522641eb31fa2a0015000002