iOS - 在子视图的视图中添加一个按钮,但在顶视图的控制器上调用按钮的操作
Posted
技术标签:
【中文标题】iOS - 在子视图的视图中添加一个按钮,但在顶视图的控制器上调用按钮的操作【英文标题】:iOS - adding a button to the view of a subview, but calling button's action on top view's controller 【发布时间】:2011-02-03 17:16:11 【问题描述】:我已经在我的应用程序的顶视图的子视图(地图)上添加了一个视图(按钮),但是当点击按钮时,我需要在顶视图的控制器上调用一个操作。以下是各层的细分:
-ViewController.view 有地图的子视图。
-map 有按钮的子视图。
-按钮需要有目标/动作,目标是 ViewController。
所有这些都是在 ViewController 中以编程方式完成的,因此 map 是 ViewController.view 的直接子视图(即,它没有自己的视图控制器)。
当我制作按钮并将目标设置为 self 时,它会调用地图上的选择器操作。该按钮是一个十字准线,应该放大到用户的位置。我需要它在地图上进行裁剪和旋转。如果我将视图添加为具有目标自身的 ViewController 的子视图,则会触发操作并放大地图。如果我将视图添加为地图的子视图,则操作不会触发或引发任何错误。
这可能吗?
这是我想要在 ViewController 中执行的操作:
[crosshair addTarget:self action:@selector(zoomToLocation) forControlEvents:UIControlEventTouchUpInside];
[[self map] addSubview:crosshair];
【问题讨论】:
【参考方案1】:你说: “当我制作按钮并将目标设置为自身时,它会调用地图上的选择器操作。” 这段代码在哪里,即那个时候的'self'是什么?
在地图视图中调用选择器到底有什么问题?如果是某些工作必须由视图控制器完成,可以在选择器调用的视图控制器中设置委托(回调)函数。
【讨论】:
以上是关于iOS - 在子视图的视图中添加一个按钮,但在顶视图的控制器上调用按钮的操作的主要内容,如果未能解决你的问题,请参考以下文章
添加、删除子视图并在子视图和主 uiviewcontroller 之间进行通信