0

我正在使用 Map iOS6,我遇到了一些麻烦:如下图,当前位置和 placeMark 的注释也有 callOut 按钮,但我需要按钮执行不同的任务,我该怎么做?这意味着在当前位置,我需要此任务的 callOut 按钮,而在 placeMark 中,callout 按钮执行另一项任务。
请访问此页面查看图片
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 中的两个按钮之间执行不同的任务?很难解释我的情况,希望大家理解我上面的表现,感谢您的帮助。感谢提前。

4

1 回答 1

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
 }
于 2013-03-26T18:59:55.740 回答