Conecta
Nido Apple
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Disclosure Button
- preguntó
- Desarrolladores Apple
- 379 Vistas
- 7 Respuestas
- abierta
Hola,
Llevo muy poco tiempo con xcode4 , y me gustaría me indicaran un ejemplo de una MKAnnottation en un mapa , y que incluya un Disclosure Button que al presionarlo me lleve a otra view.
gracias de antemano. slds.
7 Respuestas
Bienvenido al sitio josean.
Por favor explica un poco más a detalle que es lo que quieres hacer, para así darte un ejemplo que te funcione mejor.
¿Que va a hacer la aplicación?
¿La vas a integrar con algo más?
¿No te funciona algo?
¿Algo en especial dentro de los mapas o solo una anotación?
Etc...
Saludos.
Por favor, accede o regístrate para añadir un comentario.
Quiero poner varias anotaciones en distintos puntos del mapa y en cada una de ellos un botón que me lleve a una vista diferente.
Tengo hecho esto únicamente una anotación.
[PHP]- (void)viewWillAppearBOOL)animated {
CLLocationCoordinate2D Localizacion1;
Localizacion1.latitude = 42.784670;
Localizacion1.longitude = -4.835606;
MKPointAnnotation *anotacion = [[MKPointAnnotationalloc] init];
anotacion.coordinate = Localizacion1;
anotacion.title = @"Guardo";
anotacion.subtitle = @"Centro-Ciudad";
[localizacion addAnnotation:anotacion];
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(Localizacion1, 1680, 1680);
MKCoordinateRegion adjusteRegion = [localizacion regionThatFits:viewRegion];
[localizacion setRegion:adjusteRegion animated:YES];
}[/PHP]
Pero para el botón dentro de la anotación y que me lleve a otra vista, no se como hacerlo, la verdad que todo este código lo he visto por la web, y quizás estoy empezando con funcionalidad demasiado complejas para mi.
Esto de momento me funciona. Si puedes ayudarme te lo agradecería.
un saludo.
Por favor, accede o regístrate para añadir un comentario.
Prueba con este ejemplo y nos cuentas.
[PHP]- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id ) annotation
{
static NSString *annReuseId = @"currentloc";
MKPinAnnotationView *annView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:annReuseId];
if (annView == nil)
{
annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annReuseId];
annView.animatesDrop = YES;
annView.canShowCallout = YES;
UIButton *detailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annView.rightCalloutAccessoryView=detailButton;
}
else {
annView.annotation = annotation;
}
return annView;
}
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"calloutAccessoryControlTapped: annotation = %@", view.annotation);
MyDetailViewController *detailView=[[MyDetailViewController alloc] initWithNibName:@"MyDetailViewController" bundle:nil];
//aquí puedes poner la info de una anotación en algún property del detailView
[[self navigationController] pushViewController:detailView animated:YES];
[detailView release];
}[/PHP]
Por favor para poner código utiliza el botón de código, así no se pierden caracteres, porque en estos casos es importante que salga bien en lugar de caritas.
Saludos.
Por favor, accede o regístrate para añadir un comentario.
Hola, Me da el siguiente error Use of undeclared identifier 'detailView' en la última parte del código que me has enviado, estoy segurísimo que es muy básico y que tengo que adaptar tu código a mi proyecto , pero por más que pienso no doy con ello.
tengo que declaran algo en el .h ?
Muchísimas gracias por tu interés-
[PHP]- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"calloutAccessoryControlTapped: annotation = %@", view.annotation);
MyDetailViewController *detailView=[[MyDetailViewController alloc] initWithNibName:@"MyDetailViewController" bundle:nil];
//aquí puedes poner la info de una anotación en algún property del detailView
[[self navigationController] pushViewController:detailView animated:YES];
[detailView release];
}[/PHP]
Por favor, accede o regístrate para añadir un comentario.
Si, lo tienes que declarar, no era para que lo integraras, si no para hacerlo por completo.
De todos modos si quieres integrarlo directo a tu código y que solo con darle click al pin se vaya a otro view prueba esto.
[PHP]- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
// Aquí pasas a tu viewcontroler
}[/PHP]
O también
[PHP]- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
// Tu código aquí
}[/PHP]
Saludos.
Por favor, accede o regístrate para añadir un comentario.
Ya me compila , pero no me aparece ningún botón.... me faltaba un nuevo viewcontroller , pero algo me falla... este es todo mi .m
[PHP]
#import "ViewController.h"
#import "ViewController2.h"
@implementation ViewController
@synthesize mapa;
- (void)viewWillAppear:(BOOL)animated {
CLLocationCoordinate2D PrimeraLocalizacion;
PrimeraLocalizacion.latitude = 42.784670;
PrimeraLocalizacion.longitude = -4.835606;
//Create Pin
MKPointAnnotation *anotacion = [[MKPointAnnotation alloc] init];
anotacion.coordinate = PrimeraLocalizacion;
anotacion.title = @"Guardo";
anotacion.subtitle = @"Centro-Ciudad";
[mapa addAnnotation:anotacion];
//Crear Region
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(PrimeraLocalizacion, 1680, 1680);
MKCoordinateRegion adjusteRegion = [mapa regionThatFits:viewRegion];
[mapa setRegion:adjusteRegion animated:YES];
}
//create disclosure button
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id ) annotation
{
static NSString *annReuseId = @"currentloc";
MKPinAnnotationView *annView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:annReuseId];
if (annView == nil)
{
annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annReuseId];
annView.animatesDrop = YES;
annView.canShowCallout = YES;
UIButton *detailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annView.rightCalloutAccessoryView=detailButton;
}
else {
annView.annotation = annotation;
}
return annView;
}
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"calloutAccessoryControlTapped: annotation = %@", view.annotation);
ViewController2 *detailView=[[ViewController2 alloc] initWithNibName:@"ventana" bundle:nil];
//aquí puedes poner la info de una anotación en algún property del detailView
[[self navigationController] pushViewController:detailView animated:YES];
}
@end[/PHP]
Por favor, accede o regístrate para añadir un comentario.
Yo lo haria asi:
[PHP]
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id )annotation{
MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"CustomPinAnnotationView"];
pinView.pinColor = MKPinAnnotationColorGreen;
pinView.animatesDrop = YES;
pinView.canShowCallout = YES;
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self
action:@selector(showDetails:)
forControlEvents:UIControlEventTouchUpInside];
return pinView;
}
- (IBAction)showDetails:(id)sender
{
webview = [[[WebViewController alloc]init] initWithNibName:@"WebViewController" bundle:nil];
[webview rebreUrl:url];
webview.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:webview animated:YES];
}[/PHP]
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 280240
- 1
- Ago 31, 2017
Otras Preguntas y Respuestas
- entre Desarrolladores (Desarrolladores)
Respuestas WordPress (Usuarios WordPress)
Sin Respuesta
-
- 97
- 0
- Oct 16
-
- 545
- 0
- Jun 16
-
- 693
- 0
- May 8
-
- 718
- 0
- Feb 23
-
- 721
- 0
- Dic 7, 2023
-
- 302
- 0
- Nov 30, 2023
-
- 719
- 0
- Jul 7, 2023
-
- 846
- 0
- Ago 4, 2022
- ver todas
No se han encontrado preguntas relacionadas
Actividad Reciente
Itavi preguntó Oct 16
No veo las carpetas de Aplicaciones y Descargas en…DJUNQUERA seleccionó una respuesta Ago 12
Comando de voz para desplazarse un número variable…DJUNQUERA respondió Ago 12
Comando de voz para desplazarse un número variable…Peter comentó Jul 11
Emulador de AndroidDaleGarrote comentó Jul 11
Emulador de Android
Ultimas Respuestas
DJUNQUERA respondió
La versión de MacOS Sonoma habilita un comando de
0Peter respondió
Creo que lo mas sencillo es que te pagas en contac
1Peter respondió
Me parece que es un problema de RAM y va a depende
1mozzer respondió
0Peter respondió
Si es por el sistema, ya que requieres macOS Ventu
1DaleGarrote respondió
Bueno, estoy probando y no doy en la tecla. Decid�
0ppenagosr respondió
Muchas gracias por tu respuesta; cometí el error
0Ultimos Comentarios
DaleGarrote comentó
No se han encontrado preguntas relacionadas
...