gpt4 book ai didi

ios - 无法将 UIButton 事件正确发送到其他 View Controller

转载 作者:行者123 更新时间:2023-11-28 20:21:18 24 4
gpt4 key购买 nike

有人可以为 UIViewController 之间的一对一事件传输提供一些示例和正式模式吗?我认为 NSNotificationCenter 不适用于此用例,因为它基于事件总线和用于广泛状态更改的广播模式,这就是应该用于一对多传输的原因。我知道 KVO根本在这种情况下不适用,因为它通常用于经典 MVC 中模型层和 Controller 层之间的通信领域。所以现在我只知道一对一事件传输的一种方式:委托(delegate)模式。但可能还有更优雅和简单 not 简单解决方案。

最佳答案

例如:

在 View 中, Action 被发送到:

@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];

在 View 中, Action 将从以下位置发送:

#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
}

希望你明白了。请根据您的情况实现。

关于ios - 无法将 UIButton 事件正确发送到其他 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com