有人可以提供一些示例和正式模式,用于在UIViewController
之间进行一对一事件传输吗?我认为NSNotificationCenter
不适用于此用例,因为它基于事件总线和广播模式进行广泛的状态更改,因此应该用于一对多传输。我知道KVO
在这种情况下不适用于,所有也是如此,因为它通常用于经典MVC
领域中的模型和控制器层之间的通信。所以现在我只知道一种一对一的事件传输方式:委托模式。但可能会有更优雅和simple
noteasy
解决方案。无法正确地向其他视图控制器发送UIButton事件
0
A
回答
3
例如:
在视图的动作发送到:
#import "MapView.h"
@interface MapViewController : UIViewController<MapViewDelegate>
{
}
.m
MapView *map = [[MapView alloc] init];
map.delegate = self;
-(void)MapImageButtonClicked:(UIButton*)sender
{
//implement the necessary functionality here
}
:
@protocol MapViewDelegate <NSObject>
@required
-(void)MapImageButtonClicked:(UIButton*)sender;
@end
@interface MapView : UIView
{
UIButton *mapButton;
id mapViewDelegate;
}
@property(nonatomic,retain) id mapViewDelegate;
@property(nonatomic,retain) UIButton *mapButton;
的.m
[mapButton addTarget:self.delegate action:@selector(mapImageButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
在视图的动作将从发送
希望你得到我数据包络分析。请根据您的情况实施。
0
你可以把这个方法在协议中您的视图界面:
@protocol MyViewWithButtonDelegateProtocol<NSObject>
-(void)myButtonAction:(id)sender; @end
- 你把NSObject的或UIView的类型称为委托一个新的属性在视图 具有按钮。
- 您让您的视图必须处理符合该协议的动作,并且它在视图中指定委托人属性为 self。
- 你在你的视图控制器实现中实现myButtonAction。
- 现在你只需做[myButton setTarget:delegate action:@selector(myButtonAction :) forControlEvents:UIControlEventTouchUpInside] ;.
相关问题
- 1. 从控制器向视图发送通知是否正确?
- 2. AngularJS(Ionic):无法在其他控制器中发送$ scope信息
- 3. 连接UISwitch与事件在其他视图控制器
- 4. 从其他视图控制器获取事件
- 5. ios - 无法从其他视图控制器访问数据
- 6. 服务器控件事件无法正确触发
- 7. 无法将数据从视图发送到控制器
- 8. viewController在其他视图控制器
- 9. 类控制其他视图
- 10. UINavigationController不会推送其他视图控制器?
- 11. 如何将事件发送到其他视图
- 12. IBOutlets到故事板中的其他视图控制器
- 13. MonoTouch - IOS5故事板 - 其他视图控制器
- 14. 无法访问其他控制器
- 15. 发送ID从视图到控制器
- 16. 从控制器发送值到视图
- 17. 发送字典对象以及其他值从控制器到视图
- 18. 如何将Facebook用户信息发送到其他视图控制器?
- 19. 使用视图控制器管理两个其他视图控制器
- 20. 视图控制器从其他视图控制器推不会加载
- 21. 如何为其他视图控制器使用基本视图控制器?
- 22. 无法使用UITabBarController将一个视图控制器发送到另一个视图控制器
- 23. 从横向推送视图控制器中的视图控制器
- 24. 如何在其他控制器视图中使用One控制器方法?
- 25. 如何在视图或其他控制器中调用控制器方法?
- 26. 从视图(javascript)向MVC中的控制器发送数据5
- 27. 如何从控制器向GSP视图发送Javascript代码?
- 28. AngularJs - 向单个控制器发送广播事件
- 29. 视图控制器未以正确的方向显示
- 30. Xcode 4 UIButton继续推送到桌面视图控制器
需要使用代表.. – lakesh 2013-04-04 17:24:13
即使协议也可以使用。 – 2013-04-04 17:25:20