2014-12-18 19 views
14

Tôi gặp sự cố trong MKMapView trong iOS 8.x.x. Ứng dụng hoạt động tốt iOS 7.x.x nhưng không có trong iOS 8.x.x. Trên thiết bị, nó chỉ hiển thị chú thích nhưng không có bản đồ phía sau.MKMapView không hiển thị trong iOS 8 trở lên

Tôi đã cố gắng Đặt lại thiết bị của mình một cách mạnh mẽ nhưng không may mắn.

tôi thêm những 2 giá trị trong info.plist cũng như đó là một yêu cầu dành cho iOS 8 trở đi

<key>NSLocationAlwaysUsageDescription</key> 
<string>Location is required to find out where you are</string> 
<key>NSLocationWhenInUseUsageDescription</key> 
<string>Location is required to find out where you are</string> 

và thêm dòng mã này trong viewDidLoad của tôi.

// Check for iOS 8. Without this guard the code will crash with "unknown selector" on iOS 7. 
    if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) 
    { 
     [self.locationManager requestWhenInUseAuthorization]; 
     //[self.locationManager requestAlwaysAuthorization]; 
     self.myMapView.showsUserLocation = YES; 
    } 

Bằng cách thêm 2 giá trị này vào info.plist và các dòng mã trên, tôi có thể nhận vị trí và chú thích của người dùng hiển thị trên bản đồ cho vị trí của người dùng nhưng Map trống.

Tương tự như bài này: MKMapView showing blank screen in iOS 8

Blank Map View with annotation

+0

Bất cứ ai ...... ?? –

Trả lời

19

Đã điều rất giống nhau trên IOS8.3 cả sim và thiết bị. Giải quyết bằng cách chạy hệ thống Ứng dụng Bản đồ (nó cũng hiển thị lưới trống) trong một phút cho đến khi nó tải xuống bản đồ. Sau đó, MKMapView của tôi bắt đầu hiển thị như bình thường.

+0

Câu trả lời hay. Nó làm việc cho tôi. Cảm ơn bạn @Pawel – alishaik786

+2

Chúng tôi có cùng một vấn đề và "bản vá" này cũng đang hoạt động cho chúng tôi. IMO, bạn không nên yêu cầu người dùng mở ứng dụng Maps và quay lại ứng dụng của bạn. Bất kỳ cách nào để "buộc" làm mới bản đồ và/hoặc tải xuống bản đồ? Cảm ơn. – esylvestre

+0

Sự cố này xảy ra với tôi vì ứng dụng Maps chưa bao giờ được mở trên thiết bị thử nghiệm. Một khi nó đã được mở, tôi cần phải chấp nhận các thỏa thuận, bây giờ bản đồ của riêng tôi tải hoàn hảo mỗi lần. – Leon

3

thử thêm phương thức ủy quyền:
- (void)mapViewWillStartLoadingMap:(MKMapView *)mapView; - (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView; - (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error; và kiểm tra giải pháp cho thông báo lỗi của bạn.

cũng kiểm tra giải pháp this tôi không loại bỏ việc xay nhưng ít nhất tôi đã loại bỏ lỗi didFail.

nhưng có vẻ là vấn đề của iOS8 vì trên iOS8.3 hoạt động tốt với cùng một mã.

Các vấn đề liên quan