Попробуйте удалить AlertView из кнопки тега, затем используйте modalView (см. Ниже), когда пользователь нажимает кнопку. Вам нужно отредактировать свой AlertView, чтобы добавить «OtherButtonTitles» и «.tag =», такие как:
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Name your Location"
message:@"Enter Location"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Continue", nil];
alertView.tag = 800;
Я бы предложил сделать "pinTitle" переменной, которую вы можете передать функции тега (void)
Вот пример modalView (который автоматически вызывается), и он запускает ваш «(пустой) тег» (без предупреждения в нем) и проверяет, работает ли он.
#pragma mark alert box delegate methods and actions
- (void)modalView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
// the second button (1) was pressed
if (buttonIndex == 1 && alertView.tag == 800) {
//NSLog(@"modalView dismiss button %i", buttonIndex);
// Now run the geolocation (void)tag
[self tag];
}
}
Кроме того, убедитесь, что вы также отпустили аннотацию, например:
MapAnnotation *annotation = [[[MapAnnotation alloc] initWithCoordinate:current.coordinate] autorelease];