继承位置页面RCLocationPickerViewController,实现发送位置到聊天界面。

在继承位置页面RCLocationPickerViewController后,实现导航栏右键功能,即发送位置消息到聊天界面。
发布时间: 2016-04-06 10:31

回答:

创建RCLocationPickerViewController的子类,MyLocationPickerViewController。

实例化子类,设置代理,push到子类的对象中。

MyLocationPickerViewController *locationPicker = [[MyLocationPickerViewController allocinit];

            locationPicker.delegate = self;

            [self.navigationController pushViewController:locationPicker animated:YES];


在子类的对象中实现下面方法,在退出该页面时候调用rightBarButtonItemPressed方法,就可以将位置消息发送到聊天界面了。

- (void)rightBarButtonItemPressed:(id)sender {

    if (self.delegate) {

        [self.delegate locationPicker:self

                    didSelectLocation:[self currentLocationCoordinate2D]

                         locationName:[self currentLocationName]

                        mapScreenShot:[self currentMapScreenShot]];

    }

}


- (CLLocationCoordinate2D)currentLocationCoordinate2D {

    return [self.dataSource mapViewCenter];

}


- (UIImage *)currentMapScreenShot {

    return [self.dataSource mapViewScreenShot];

}


- (NSString *)currentLocationName {

    if (self.pois) {

        @try {

            id placeMark = [self.pois objectAtIndex:self.currentSelectedPoi];

            return [self.dataSource titleOfPlaceMark:placeMark];

        } @catch (NSException *exception) {

        } @finally {

        }

    }

    CLLocationCoordinate2D location = [self currentLocationCoordinate2D];

    NSString *_longitude = NSLocalizedStringFromTable(@"Longitude"@"RongCloudKit"nil);

    NSString *_latitude = NSLocalizedStringFromTable(@"Latitude"@"RongCloudKit"nil);


    NSString *_f_longitude = [_longitude stringByAppendingFormat:@":%lf", location.longitude];

    NSString *_f_latitude = [_latitude stringByAppendingFormat:@":%lf", location.latitude];


    NSString *_current_locationName = [_f_longitude stringByAppendingFormat:@" %@", _f_latitude];

    return _current_locationName;

    // return [NSString stringWithFormat:@"经度:%lf 纬度:%lf", location.longitude, location.latitude];

}





我对此仍有疑问!继续追问