Objective C - iPhone/ 处理父视图上的子视图事件
Objective C - iPhone/ handle subView events on ParentView
我在尝试处理来自父视图的子视图的事件时遇到问题,现在我有一个 UIViewController,它有一个子视图另一个 UIViewController,在这个子视图中我有一个分页滚动视图,我想触发一个当我滑动子视图滚动视图时父视图上的方法,你对我如何开发这个有什么建议吗?谢谢
您可以使父视图成为子视图的委托。
将此添加到 SubView.h:
// add
@protocol SubViewClassNameDelegate
@required
- (void)triggerMethodFromSubView:(NSString *)value;
@end
//
@interface SubViewClassName : UIView
// add
@property (nonatomic, assign) id<SubViewClassNameDelegate> delegate
//
@end
然后在您的父视图 class 中,将此添加到 ParentView.h:
@interface ParentViewClassName : UIView /* add -> */ <SubViewClassNameDelegate>
在子视图实例化之后 ParentView.m 中的这个:
[mySubView setDelegate:self];
最后,在 ParentView.m 中的某处添加您的委托触发方法:
- (void)triggerMethodFromSubView:(NSString *)value {
// do stuff
}
现在,您可以在子视图 class 的任何位置调用 [self.delegate triggerMethodFromSubView:@"Hello World"]
,它会告诉父视图调用您的委托方法。
如果您需要更多信息,这里有一个有用的教程:http://www.alexefish.com/post/522641eb31fa2a0015000002
我在尝试处理来自父视图的子视图的事件时遇到问题,现在我有一个 UIViewController,它有一个子视图另一个 UIViewController,在这个子视图中我有一个分页滚动视图,我想触发一个当我滑动子视图滚动视图时父视图上的方法,你对我如何开发这个有什么建议吗?谢谢
您可以使父视图成为子视图的委托。
将此添加到 SubView.h:
// add
@protocol SubViewClassNameDelegate
@required
- (void)triggerMethodFromSubView:(NSString *)value;
@end
//
@interface SubViewClassName : UIView
// add
@property (nonatomic, assign) id<SubViewClassNameDelegate> delegate
//
@end
然后在您的父视图 class 中,将此添加到 ParentView.h:
@interface ParentViewClassName : UIView /* add -> */ <SubViewClassNameDelegate>
在子视图实例化之后 ParentView.m 中的这个:
[mySubView setDelegate:self];
最后,在 ParentView.m 中的某处添加您的委托触发方法:
- (void)triggerMethodFromSubView:(NSString *)value {
// do stuff
}
现在,您可以在子视图 class 的任何位置调用 [self.delegate triggerMethodFromSubView:@"Hello World"]
,它会告诉父视图调用您的委托方法。
如果您需要更多信息,这里有一个有用的教程:http://www.alexefish.com/post/522641eb31fa2a0015000002