0

ViewControllerを別のに統合する際に奇妙な問題がありViewControllerます。私の問題を説明します、

私は((Ville / Autour De MoiCarte / Liste ...)ParentViewControllerを含むものを持っています、そしてこれに私は2つを切り替えます:とa (地図を含むもの)、そして私はのためのフレームを指定しました取る:_ButtonsParentViewControllerChildViewControllersListViewControllerMapViewControllerChildViewControllers( 0, 104, 320, 282)

if(mapViewController ==nil) {
            mapViewController = [[MapViewController alloc] init];
            mapViewController.networkViewController = self;
        }

        mapViewController.view.frame = CGRectMake( 0, 104, 320, 282);
        [self.view addSubview:mapViewController.view];

すべてが魅力のように機能していますが、マップをドラッグすると、マーカーと注釈が上にParentViewControllerなり、非表示になるという問題がありますbuttons

画像は私の問題を説明します:

ドラッグの前:

地図上でドラッグする前に

マップ上でドラッグした後:

マップ上でドラッグした後、私のマーカーと注釈は、ParentViewControllerのビューを非表示にします

注意:ParentController背景が透明でなく、地図もありません。MappySDKIOSを使用しています。

注釈を追加するためのコード:MPPoiDataSourceMappyCustom.m

#import "MPPoiDataSourceMappyCustom.h"

@implementation MPPoiDataSourceMappyCustom

-(UIView *) labelAtIndex:(NSIndexPath *)indexPath withScreeLocation:(CGPoint)screenLocation withViewBounds:(CGRect)_bounds update:(BOOL)aUpdate {

    // the label is allways up to date, we will not refresh it
    if (aUpdate)
        return nil;

    if ([elementList count] > indexPath.row)
    {
        MPPoi * mpoi = [elementList objectAtIndex:indexPath.row];
        MPGlobalStyle* style = [MPGlobalStyle sharedStyle];
        style.textColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
        //style.borderColor = [UIColor whiteColor];
        style.textFont = [UIFont fontWithName:@"Helvetica-Bold" size:12.0];
        style.borderColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
        //style.borderColor = [UIColor colorWithRed:0.32 green:0.87 blue:0.05 alpha:1.0];
        style.backgroundColor = [UIColor colorWithRed:0.627 green:0.066 blue:0.196 alpha:1.0];
        MPCalloutView* mpCallOutView = [MPCalloutView calloutWithText:mpoi.uId withScreeLocation:screenLocation withViewBoundsWidth:_bounds.size.width];

//        MPCalloutViewStyle* style = [MPCalloutViewStyle blackAndWhiteStyle];
        mpCallOutView.popinstyle = style;


        return mpCallOutView;
    }
    return nil;
}

@end

これは私がマーカーを表示するために使用する方法です:

-(void) addMarkersOnMap {
    MPMarkerManager * markerManager = [self.mapView markerManager];
    MPMarkerCategory * category = [markerManager getCategory:STORE_LOC_CATEGORY];

    //change the image of markers of this category
    category.markerImage = [UIImage imageNamed:@"green-marker.png"];

    //category settings 
    [category setOptimalZoom:YES];//set the zoom to be optimal : show all poi in the category
    [category setHideLabelOnTheFirstShow:YES];
    [category setAnimateAtFirstShow:YES];

    //remove old elements   
    [category.dataSource removeAllElements];

    //create new mappy data source for our cotegory ( stores)
    MPPoiDataSourceMappyCustom* datasource = [[MPPoiDataSourceMappyCustom alloc] init ];

    //add markers on map
    for(int i=0; i<self.arrayStores.count; i++) {

        NSDictionary* currentStore = [self.arrayStores objectAtIndex:i];
        float latitude  = [[currentStore objectForKey:@"latitude"] floatValue];
        float longitude = [[currentStore objectForKey:@"longitude"] floatValue];
        CLLocationCoordinate2D locationStore = CLLocationCoordinate2DMake(latitude, longitude);

        //add the marker on the map for the current store
        //create a new POI object with location 
        NSString* str = [NSString stringWithFormat:@"%@ \n %@ %d", [currentStore objectForKey:@"title"],[currentStore objectForKey:@"address"], [currentStore objectForKey:@"CP"] ];
        MPPoi * poi = [[MPPoi alloc] initWithUId:str withLocation:locationStore];
        [datasource addElement:poi];
        [poi release];
        NSLog(@"add store %d on the map , coordonnées :( %f , %f )", i,latitude,longitude);
    }

    [category setDataSource:datasource];
    [datasource release];

    //send all subviews to the back
    for( UIView* view in [self.view subviews]) {
        [self.view sendSubviewToBack:view];
    }

}

この奇妙な問題の原因についてのアイデアの友人??? これはMappySDKからのものですか?MapViewControllerのサブビューをブークルして、Backに送信しようとしましたが、うまくいきませんでした。前もって感謝します

4

1 に答える 1

0

他のビューを前面に表示することで修正しました:

[self.view bringSubviewToFront:self.headerView];
于 2012-06-19T16:47:11.627 に答える