我正在使用地图iOS6,我遇到了一些麻烦:
如下图所示,当前位置和placeMark的注释也有callOut按钮,但我需要按钮执行不同的任务,我该怎么做?这意味着在当前位置,我需要callOut按钮执行此任务,并且在placeMark中,标注按钮执行另一项任务。
请访问此页面以查看图像
http://upanh.com/listing/?s=c3f4954854a30fe50e3e15f9ae064ba2
我没有足够的声誉在这里发布图像。
我试过这段代码:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
if ([(UIButton*)control buttonType] == UIButtonTypeDetailDisclosure)
{
...
locationSheet.cancelButtonIndex = locationSheet.numberOfButtons - 1;
}else if ([(UIButton*)control buttonType] == UIButtonTypeInfoLight)
{
...
locationSheet.cancelButtonIndex = locationSheet.numberOfButtons - 1;
}
}
和
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
// 1
if (buttonIndex != actionSheet.cancelButtonIndex)
{
if (buttonIndex == 0)
{
}
}
}
如何在actionSheet中的两个按钮之间执行不同的任务?很难解释我的情况,我希望每个人都明白我上面的表现,并感谢你的帮助。 谢谢你的进步。
答案 0 :(得分:1)
我无法访问您的图片 - 但如果您有实际按钮(UIButton)而不是MKAnnotations,那么为什么不为按钮指定标签(当然每个标签都有不同的标签),将它们指向同一个功能,然后根据标签区分?所以(这可以用于任何按钮,不仅仅是UIButtonTypeCustom
,而且实际上对于任何UIView
- 它们都支持tag
):
UIButton *firstButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIButton *secondButton = [UIButton buttonWithType:UIButtonTypeCustom];
firstButton.tag = 100;
secondButton.tag = 200;
[firstButton addTarget:self selector:@selector(doSomething:)];
[secondButton addTarget:self selector:@selector(doSomething:)];
- (void)doSomething:(id)sender {
UIButton *pressedButton = (UIButton*)sender;
if (pressedButton.tag == 100) {
//First button
}
else if (pressedButton.tag == 200) {
//Second button
}