有人可以提供一些示例和正式模式,用於在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. 如何將事件從Ember.js視圖發送到其控制器
- 3. 發送代表uitableview到其他視圖控制器
- 4. AngularJS(Ionic):無法在其他控制器中發送$ scope信息
- 5. 從其他視圖控制器刷新視圖控制器
- 6. 連接UISwitch與事件在其他視圖控制器
- 7. 從其他視圖控制器獲取事件
- 8. 無法從OnActionExecuting中的其他控制器返回視圖
- 9. ios - 無法從其他視圖控制器訪問數據
- 10. 服務器控件事件無法正確觸發
- 11. MVC控制器無法觸發視圖
- 12. Xcode無法識別其他類的任何其他視圖控制器
- 13. 從控制器發送數據到其他控制器
- 14. 如何從其他視圖控制器
- 15. viewController在其他視圖控制器
- 16. 無法將數據從視圖發送到控制器
- 17. 類控制其他視圖
- 18. 自動推送到其他視圖控制器
- 19. UINavigationController不會推送其他視圖控制器?
- 20. 如何將標籤欄推送到其他視圖控制器
- 21. 如何將事件發送到其他視圖
- 22. MonoTouch - IOS5故事板 - 其他視圖控制器
- 23. IBOutlets到故事板中的其他視圖控制器
- 24. 故事板:無法將視圖拖到視圖控制器
- 25. 無法訪問其他控制器
- 26. 無法從集合視圖控制器發送圖像到詳細視圖控制器
- 27. 其中一個參數未正確發送到控制器中
- 28. 從控制器發送值到視圖
- 29. 發送ID從視圖到控制器
- 30. UIView(ViewControllers視圖子視圖)UIButton無法接收點擊事件
需要使用代表.. – lakesh 2013-04-04 17:24:13
即使協議也可以使用。 – 2013-04-04 17:25:20