0
주석의 공개 버튼에 대한 몇 가지 다른 게시물을 읽었지만 매우 유용한 것을 찾을 수 없었습니다. 기본적으로 JSON에서 파싱 한 위치의지도에 주석을 추가하고 있습니다. 이 주석에 공개 단추를 추가하고 공개 단추를 누르면 다음 viewController에서 해당 위치의 JSON 정보를로드하려고합니다. 여기에 각 위치에 대한 주석을 표시하는 코드가 있습니다. ViewController.m주석에 공개 버튼을 추가하고 새로운보기 컨트롤러에서 정보를 엽니 다.
#import "ViewController.h"
#import "Annotation.h"
#import "City.h"
@interface ViewController()
@end
#define getDatalURL @"http://www.club-hop.com/apptest.php"
@implementation ViewController
@synthesize mapView,jsonArray,citiesArray;
- (void)viewDidLoad
{
[super viewDidLoad];
[self retrieveData];
City * cityObject;
// load external page into UIWebView
NSMutableArray * locations= [[NSMutableArray alloc]init];
CLLocationCoordinate2D location;
Annotation * myAnn;
for(int u=0; u<citiesArray.count;u++){
cityObject=[citiesArray objectAtIndex:u];
myAnn=[[Annotation alloc]init];
NSNumber *aLat= cityObject.Latitude;
NSNumber *aLon= cityObject.Longitude;
double lat = [aLat doubleValue];
double lon = [aLon doubleValue];
location.latitude= lat;
location.longitude=lon;
myAnn.coordinate = location;
myAnn.title=cityObject.clubName;
myAnn.subtitle=cityObject.cityName;
[locations addObject:myAnn];}
[self.mapView addAnnotations:locations];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//class methods
-(void) retrieveData{
NSURL * url= [NSURL URLWithString:getDatalURL];
NSData * data= [NSData dataWithContentsOfURL:url];
jsonArray= [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
//setup cities array
citiesArray=[[NSMutableArray alloc]init];
for(int i=0; i<jsonArray.count;i++){
NSString * cID= [[jsonArray objectAtIndex:i] objectForKey:@"id"];
NSString * cName= [[jsonArray objectAtIndex:i] objectForKey:@"cityName"];
NSString * cCountry= [[jsonArray objectAtIndex:i] objectForKey:@"cityCountry"];
NSString * cLine= [[jsonArray objectAtIndex:i] objectForKey:@"clubLine"];
NSString * clName= [[jsonArray objectAtIndex:i] objectForKey:@"clubName"];
NSNumber * cLatitude= [[jsonArray objectAtIndex:i] objectForKey:@"Latitude"];
NSNumber * cLongitude= [[jsonArray objectAtIndex:i] objectForKey:@"Longitude"];
[citiesArray addObject:[[City alloc]initWithCityName:cName andCityCountry:cCountry andClubName:clName andClubLine:cLine andLatitude:cLatitude andLongitude:cLongitude andCityId:cID]];
}
}
ViewController.h
#import <UIKit/UIKit.h>
#import <Mapkit/Mapkit.h>
@interface ViewController : UIViewController <MKMapViewDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@property (nonatomic, strong) NSMutableArray * jsonArray;
@property (nonatomic, strong) NSMutableArray * citiesArray;
-(void) retrieveData;
@end
Annotation.m
#import "Annotation.h"
@implementation Annotation
@synthesize coordinate,title,subtitle;
@end
Annotation.h
여기#import <Foundation/Foundation.h>
#import <Mapkit/Mapkit.h>
@interface Annotation : NSObject
@property(nonatomic,assign) CLLocationCoordinate2D coordinate;
@property(nonatomic, copy) NSString * title;
@property(nonatomic, copy) NSString * subtitle;
@end
훌륭한 다리를 확인하면 대단히 – user3492592
언제나 환영 사랑 감사합니다. –