2010-06-15 101 views
4

我有这个错误,当我建立我的应用程序的iPhone: 请求成员视图中的东西不是结构或联合[CommuneSlider.view removeFromSuperview];请求成员视图中的东西不是结构或工会

代码: - (无效)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]; 

}

需要帮助的

回答

0

如果这是C++,我会说:“有一个指针指向一个类,您尝试说pClass.foo而不是pClass->foo“,或者您尝试访问的”view“变量的类型由于某种原因而未知。也许这可以帮助Objective-C。

+0

事实上,它是在客观C和communeSlider的是,我在myAppDelegate @synthesize CommuneSlider定义它的属性; @synthesize CommuneDetails; – james 2010-06-15 13:32:33

+0

那么,它是一个指针还是一个结构/类?你看,我只在C++上下文中看到过这些错误,而Objective-C几乎没有任何经验 – iksemyonov 2010-06-15 13:36:29

1

确定这是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 

这里的AzurGuideAppDelegate.m在那里我定义我的方法:

#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]; 
} 

和我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

如果这是错误行:

对[CommuneSlider.view removeFromSuperview]中的某个结构或联合中的成员视图的请求;

它似乎表明CommuneSlider没有“查看”成员。变量的名称使我认为它是一个UIControl,而不是UIViewController的子类(它具有视图属性)。

你确定你不想要的东西,如:

[CommuneSliderController.view removeFromSuperview]; 
相关问题