2010-06-15 3 views
4

J'ai cette erreur lorsque je construis mon application iphone: demande de vue membre dans quelque chose pas une structure ou union sur [CommuneSlider.view removeFromSuperview];demande de membre vue dans quelque chose pas une structure ou union

le code: - (void) CommuneSelected {

CommuneDetailsViewController *com = [[CommuneDetailsViewController alloc] initWithNibName:@"CommuneDetailsViewController" bundle:nil]; 

UINavigationController *navig = [[UINavigationController alloc] 
           initWithRootViewController:com]; 
[self setCommuneDetails:(CommuneDetailsViewController *) navig]; 
[navig setNavigationBarHidden:YES]; 
[com release]; 
[navig release]; 


[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:.8]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES]; 

[CommuneSlider.view removeFromSuperview]; 
[self.window addSubview:[CommuneDetails view]]; 

[UIView commitAnimations]; 

}

Besoin d'aide

Répondre

0

Si tel était C++, je dirais que « il y a un pointeur vers une classe, et vous essayez de dire pClass.foo au lieu de pClass->foo ", ou le type dont vous essayez d'accéder à la variable" view "est inconnu pour une raison quelconque. Peut-être que cela pourrait aussi aider avec Objective-C.

+0

En fait, il est dans l'objectif C et communeSlider est une propriété que je l'ai définie dans myAppDelegate @synthesize CommuneSlider; @synthesize CommuneDetails; – james

+0

Eh bien, est-ce un pointeur ou une structure/classe? Vous voyez, j'ai vu ces erreurs uniquement dans le contexte C++, et j'ai peu ou pas d'expérience avec Objective-C – iksemyonov

1

ok c'est AzurGuideAppDelegate.h:

@class CommuneSliderController, AccueilViewController,CommuneDetailsViewController; 

@interface AzurGuideAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    AccueilViewController *AccueilController; 
    CommuneSliderController *CommuneSlider; 
    CommuneDetailsViewController *CommuneDetails; 
    UINavigationController *navigationControl; 

} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet AccueilViewController *AccueilController; 
@property (nonatomic, retain) IBOutlet CommuneSliderController *CommuneSlider; 
@property (nonatomic, retain) IBOutlet CommuneDetailsViewController *CommuneDetails; 


- (void) goBack; 
- (void) goFront; 
- (void) CommuneSelected; 

@end 

et ici le AzurGuideAppDelegate.m où je défini ma méthode:

#import "AzurGuideAppDelegate.h" 
#import "AccueilViewController.h" 


@implementation AzurGuideAppDelegate 

@synthesize window; 
@synthesize AccueilController; 
@synthesize CommuneSlider; 
@synthesize CommuneDetails; 


- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after application launch 

    [window addSubview:AccueilController.view]; 
    [window makeKeyAndVisible]; 
} 

- (void) CommuneSelected { 

    CommuneDetailsViewController *com = [[CommuneDetailsViewController alloc] initWithNibName:@"CommuneDetailsViewController" bundle:nil]; 

    UINavigationController *navig = [[UINavigationController alloc] 
            initWithRootViewController:com]; 
    [self setCommuneDetails:(CommuneDetailsViewController *) navig]; 
    [navig setNavigationBarHidden:YES]; 
    [com release]; 
    [navig release]; 


    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:.8]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES]; 
    [CommuneSlider.view removeFromSuperview]; 
    [self.window addSubview:[CommuneDetails view]]; 

    [UIView commitAnimations]; 
} 

et ma classe CommuneSliderController:

#import "AzurGuideAppDelegate.h" 
#import "CommuneSliderController.h" 
#import "CoverFlowView.h" 
#import "CoverViewController.h" 

#define CVC_VIEW_TAG  999 

@implementation CommuneSliderController 


- (IBAction) goFront:(id) sender { 
    AzurGuideAppDelegate *main = (AzurGuideAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [main goFront]; 
} 

// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Custom initialization 
    } 
    return self; 
} 

// Implement loadView to create a view hierarchy programmatically, without using a nib. 
- (void)loadView { 
    UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    contentView.backgroundColor = [UIColor whiteColor]; 
    self.view = contentView; 
    [contentView release]; 
    [[UIApplication sharedApplication] setStatusBarHidden:YES]; 

    CoverViewController *cvc = [[CoverViewController alloc] init]; 
    cvc.view.tag = CVC_VIEW_TAG; 
    [self.view addSubview:cvc.view];  
} 
1

Si c'est la ligne d'erreur:

demande d'affichage de membre dans quelque chose qui n'est pas une structure ou une union sur [CommuneSlider.view removeFromSuperview];

Il semble indiquer que CommuneSlider n'a pas de membre "view". Le nom de la variable me fait penser que c'est un UIControl, pas une sous-classe de UIViewController (qui aurait une propriété view).

Êtes-vous sûr que vous ne voulez pas quelque chose comme:

[CommuneSliderController.view removeFromSuperview]; 
Questions connexes