Ali
Ali

Reputation: 4245

Cannot load the Google Maps view in iOS

I'm trying to load google maps view in iOS following the guide here

I created a new viewController for the map view called iptechMapViewController.h , iptechMapViewController.m and iptechMapViewController.xib

Here is the code in iptechMapViewController.m :

#import "iptechMapViewController.h"

#import <GoogleMaps/GoogleMaps.h>

@interface iptechMapViewController ()
{
    GMSMapView *mapView_;
}

@end

@implementation iptechMapViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    // Custom initialization
    }
return self;
}

- (void)loadView
{
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
    mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    mapView_.myLocationEnabled = YES;
    self.view = mapView_;

    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086);
    marker.title = @"Sydney";
    marker.snippet = @"Australia";
    marker.map = mapView_;
 }

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

 }

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
 }

@end

Then in another view controller named iptechFlipsideViewController.m I'm trying to show the iptechMapViewController as follows:

- (IBAction)showMap:(id)sender
{
 iptechMapViewController *controller = [[iptechMapViewController alloc] initWithNibName:@"iptechMapViewController" bundle:nil];    
[self.view addSubview:controller.view];
}

But after clicking the showMap button which is connected to the IBAction showMap, and after iOS asks permission to access my location alert appears and I touch OK, after that nothing shows up and in the console I get the following error"

Failed to make complete framebuffer object 8cd6

Thanks

Upvotes: 0

Views: 889

Answers (1)

Saxon Druce
Saxon Druce

Reputation: 17624

Passing CGRectZero to mapWithFrame only works if the map view is the root view controller's root view - in which case it is resized to fit the screen. In your case since the map is a subview, you will need to specify a size when creating the map view.

Upvotes: 2

Related Questions