It looks like you're new here. If you want to get involved, click one of these buttons!
#import \"MapViewController.h\"
#import \"DetailViewController.h\"
#import \"BridgeAnnotation.h\"
enum
{
kCityAnnotationIndex = 0,
kBridgeAnnotationIndex
};
@implementation MapViewController
@synthesize mapView, detailViewController, mapAnnotations;
#pragma mark -
+ (CGFloat)annotationPadding;
{
return 10.0f;
}
+ (CGFloat)calloutHeight;
{
return 40.0f;
}
- (void)gotoLocation
{
// start off by default in San Francisco
MKCoordinateRegion newRegion;
newRegion.center.latitude = 37.786996;
newRegion.center.longitude = -122.440100;
newRegion.span.latitudeDelta = 0.112872;
newRegion.span.longitudeDelta = 0.109863;
[self.mapView setRegion:newRegion animated:YES];
}
- (void)viewDidAppear:(BOOL)animated
{
// bring back the toolbar
[self.navigationController setToolbarHidden:NO animated:NO];
}
- (void)viewDidLoad
{
self.mapView.mapType = MKMapTypeStandard; // also MKMapTypeSatellite or MKMapTypeHybrid
// create a custom navigation bar button and set it to always says \"Back\"
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
temporaryBarButtonItem.title = @\"Back\";
self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
[temporaryBarButtonItem release];
// create out annotations array (in this example only 2)
self.mapAnnotations = [[NSMutableArray alloc] initWithCapacity:2];
// annotation for Golden Gate Bridge
BridgeAnnotation *bridgeAnnotation = [[BridgeAnnotation alloc] init];
[self.mapAnnotations insertObject:bridgeAnnotation atIndex:kBridgeAnnotationIndex];
[bridgeAnnotation release];
[self gotoLocation]; // finally goto San Francisco
}
- (void)viewDidUnload
{
self.mapAnnotations = nil;
self.detailViewController = nil;
self.mapView = nil;
}
- (void)dealloc
{
[mapView release];
[detailViewController release];
[mapAnnotations release];
[super dealloc];
}
#pragma mark -
#pragma mark ButtonActions
- (IBAction)bridgeAction:(id)sender
{
[self gotoLocation];
[self.mapView removeAnnotations:self.mapView.annotations]; // remove any annotations that exist
[self.mapView addAnnotation:[self.mapAnnotations objectAtIndex:kBridgeAnnotationIndex]];
}
#pragma mark -
#pragma mark MKMapViewDelegate
- (void)showDetails:(id)sender
{
// the detail view does not want a toolbar so hide it
[self.navigationController setToolbarHidden:YES animated:NO];
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
// if it's the user location, just return nil.
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;
// handle our two custom annotations
//
else // for Golden Gate Bridge
{
// try to dequeue an existing pin view first
static NSString* BridgeAnnotationIdentifier = @\"bridgeAnnotationIdentifier\";
MKPinAnnotationView* pinView = (MKPinAnnotationView *)
[mapView dequeueReusableAnnotationViewWithIdentifier:BridgeAnnotationIdentifier];
if (!pinView)
{
// if an existing pin view was not available, create one
MKPinAnnotationView* customPinView = [[[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:BridgeAnnotationIdentifier] autorelease];
customPinView.pinColor = MKPinAnnotationColorPurple;
customPinView.animatesDrop = YES;
customPinView.canShowCallout = YES;
// add a detail disclosure button to the callout which will open a new view controller page
//
// note: you can assign a specific call out accessory view, or as MKMapViewDelegate you can implement:
// - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control;
//
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self
action:@selector(showDetails:)
forControlEvents:UIControlEventTouchUpInside];
customPinView.rightCalloutAccessoryView = rightButton;
return customPinView;
}
else
{
pinView.annotation = annotation;
}
return pinView;
}
return nil;
}
@end
Replies
MapNextViewMV *abc = [[MapNextViewMV alloc]init];
[self.navigationController setToolbarHidden:YES animated:NO];
[self.navigationController pushViewController:abc animated:YES];
and i realized i never put navigationController in interface, now it works ^^
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like Awesome