2014-09-20 2 views
0

Тем не менее, используя Ojective-C здесь :)Как обновить карту с IBAction

В настоящее время я пытаюсь перезагрузить MAPview и все его свойства с одним нажатием кнопки, но это не заселение. Вот что я использую:

-(IBAction)refreshLocation:(id)sender { 
[self refresh]; 
} 

-(void)refresh { 
[mapView setNeedsDisplay]; 
} 

ничего не происходит, хотя: вот как я агрегацию точек данных, вероятно, не самый практичный, но это самое разумное для моих обстоятельств:

MapViewController. ч

#import <MapKit/MapKit.h> 
#import <MapKit/MKAnnotation.h> 

@interface MapViewController : UIViewController 
{ 
IBOutlet MKMapView *mapView; 
IBOutlet UISegmentedControl *segmentedControl; 
__weak IBOutlet UIBarButtonItem *refreshLocation; 

} 

@property (nonatomic, retain) MKMapView *mapView; 
@property (nonatomic, retain) UISegmentedControl *segmentedControl; 

- (IBAction)segmentedControllChanged:(id)sender; 
- (IBAction)refreshLocation:(id)sender; 

@end 

MapViewController.m

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

double cost2 = [self.latLocation doubleValue]; 
double cost = [self.longLocation doubleValue]; 
CLLocationCoordinate2D location; 
location.latitude = cost2; 
location.longitude = cost; 

MKCoordinateRegion region; 
region.center.latitude = (double) cost2; 
region.center.longitude = (double) cost; 
region.span = MKCoordinateSpanMake(.99, .99); 
region = [self.mapView regionThatFits:region]; 
[self.mapView setRegion:region animated:YES]; 

-(NSString *)latLocation { 
NSError *error = nil; 
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://mywebsite.com"] encoding:NSASCIIStringEncoding error:&error]; 
if(html) { 
    NSLog(@"HTML %@", html); 

    NSRange r = [html rangeOfString:@"<h3 class=\"font\">"]; 
    if (r.location != NSNotFound) { 
     NSRange r1 = [html rangeOfString:@"</h3>"]; 
     if (r1.location != NSNotFound) { 
      if (r1.location > r.location) { 
       NSString *latitude = [html substringWithRange:NSMakeRange(NSMaxRange(r), r1.location - NSMaxRange(r))]; 
       NSLog(@"%@", latitude); 
       latLocation = latitude; 

      } 
     } 
    } 
} 
return latLocation; 
} 

-(NSString *)longLocation { 
NSError *error = nil; 
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://mywebsite.com"] encoding:NSASCIIStringEncoding error:&error]; 
if(html) { 
    NSLog(@"HTML %@", html); 

    NSRange r = [html rangeOfString:@"<h4 class=\"font\">"]; 
    if (r.location != NSNotFound) { 
     NSRange r1 = [html rangeOfString:@"</h4>"]; 
     if (r1.location != NSNotFound) { 
      if (r1.location > r.location) { 
       NSString *longitude = [html substringWithRange:NSMakeRange(NSMaxRange(r), r1.location - NSMaxRange(r))]; 
       NSLog(@"%@", longitude); 
       longLocation = longitude; 

      } 
     } 
    } 
} 
return longLocation; 

} 

-(NSString *)annotationTitle { 
NSError *error = nil; 
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://mywebsite.com"] encoding:NSASCIIStringEncoding error:&error]; 
if(html) { 
    NSLog(@"HTML %@", html); 

    NSRange r = [html rangeOfString:@"<h1 class=\"font\">"]; 
    if (r.location != NSNotFound) { 
     NSRange r1 = [html rangeOfString:@"</h1>"]; 
     if (r1.location != NSNotFound) { 
      if (r1.location > r.location) { 
       NSString *titleString = [html substringWithRange:NSMakeRange(NSMaxRange(r), r1.location - NSMaxRange(r))]; 
       NSLog(@"%@", titleString); 
       annotationTitle = titleString; 

      } 
     } 
    } 
} 
return annotationTitle; 

} 
-(NSString *)subTitle { 

NSError *error = nil; 
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://mywebsite.com"] encoding:NSASCIIStringEncoding error:&error]; 
if(html) { 
    NSLog(@"HTML %@", html); 

    NSRange r = [html rangeOfString:@"<h2 class=\"font\">"]; 
    if (r.location != NSNotFound) { 
     NSRange r1 = [html rangeOfString:@"</h2>"]; 
     if (r1.location != NSNotFound) { 
      if (r1.location > r.location) { 
       NSString *subtitleString1 = [html substringWithRange:NSMakeRange(NSMaxRange(r), r1.location - NSMaxRange(r))]; 
       NSLog(@"%@", subtitleString1); 
       subTitle = subtitleString1; 

      } 
     } 
    } 
} 
return subTitle; 
} 

- (IBAction)refreshLocation:(id)sender { 

[self refresh]; 

} 

-(void)refresh 
{ 
[self.mapView setNeedsDisplay]; 

    // Create the request. 
} 

мне нужен т o перезагрузите все эти строковые методы для извлечения новых данных с mywebsite.com, отображаемых в этих заголовках. но в настоящее время ничего не происходит. Какие-либо предложения?

ответ

0

попробовать это

- (IBAction)refreshLocation:(id)sender { 

[self viewDidLoad]; 

} 
+0

, если он не работает, скажите мне, где и вызвать annotationTitle, подзаголовок метод в mainmethod –

+0

неловко .... ха-ха спасибо человек – soulshined