objective-c - texto - titulos subtitulos y subtemas
Mapview no muestra el título o subtítulo de la anotación de pin (2)
La aplicación devuelve un error al hacer clic en el pin de anotación. Sin embargo, no se cuelga. Simplemente no muestra el título o subtítulo.
El error es (lldb) luego enumera una cadena de números como 0x3516b5a0.
ejemplo plist:
<dict>
<key>cellName</key>
<string>Abingdon Lodge No. 48</string>
<key>cellSubtitle</key>
<string>Abingdon, VA</string>
<key>address</key>
<string>325 W Main Street Abingdon, Virginia 24210</string>
<key>latitude</key>
<real>36.708649</real>
<key>longitude</key>
<real>-81.981184</real>
<key>webSite</key>
<string>http://www.grandlodgeofvirginia.org/lodges/48/</string>
<key>statedCom</key>
<string>Abingdon Lodge No. 48 holds it's stated communication on the 2nd Monday of the month at 7:30 PM. If there are any exceptions to the regular meeting day or time, they are posted on the Lodge website.</string>
<key>history</key>
<string>According to the earliest records the Abingdon Lodge had its origin “At a meeting held at the house of James White in the town.</string>
</dict>
MapviewController.M
- (void)viewDidLoad
{
// Do any additional setup after loading the view, typiclly from a nib.
//Create the region
MKCoordinateRegion myRegion;
//Center
CLLocationCoordinate2D center;
center.latitude = VA_LATITUDE;
center.longitude = VA_LONGITUDE;
//Span
MKCoordinateSpan span;
span.latitudeDelta = THE_SPAN;
span.longitudeDelta = THE_SPAN;
myRegion.center = center;
myRegion.span = span;
//Set our mapView
[myMapView setRegion:myRegion animated:YES];
NSString *path = [[NSBundle mainBundle] pathForResource:@"lodges" ofType:@"plist"];
NSMutableArray* lodgelist = [[NSMutableArray alloc] initWithContentsOfFile:path];
for(int i = 0; i < [lodgelist count]; i++) {
float realLatitude = [[[lodgelist objectAtIndex:i] objectForKey:@"latitude"] floatValue];
float realLongitude = [[[lodgelist objectAtIndex:i] objectForKey:@"longitude"] floatValue];
CLLocationCoordinate2D mypoint;
mypoint.latitude = realLatitude;
mypoint.longitude = realLongitude;
Annotation *lodgepoint =[Annotation alloc];
lodgepoint.coordinate = mypoint;
lodgepoint.title = [[lodgelist objectAtIndex:i] objectForKey:@"cellName"];
lodgepoint.subtitle = [[lodgelist objectAtIndex:i] objectForKey:@"cellSubtitle"];
[self.myMapView addAnnotation:lodgepoint];
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
MapViewController.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface AWCMapViewController : UIViewController
@property (strong, nonatomic) IBOutlet MKMapView *myMapView;
-(IBAction)findmylocation:(id)sender;
-(IBAction)setmaptype:(id)sender;
@property (strong, nonatomic) NSArray *tabledata;
@end
En tus
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
agregue lo siguiente debajo de su MKAnnottionView
customPinView.canShowCallout=YES;
Saludos
@interface Annotation : NSObject <MKAnnotation>
@property(nonatomic, assign) CLLocationCoordinate2D coordinate;
@property(nonatomic, copy) NSString *title;
@property(nonatomic, copy) NSString *subtitle;
Tuve que cambiar el título de asignar a copiar. :PAG