构建我的应用程序iphone时出现此错误: 请求[CommuneSlider.view removeFromSuperview]上的非结构或联合的成员查看;
代码: - (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];
}
需要帮助
答案 0 :(得分: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 :(得分:1)
如果这是错误行:
请求在[CommuneSlider.view removeFromSuperview]上的非结构或联合的成员视图;
似乎表明CommuneSlider没有“view”成员。变量的名称让我觉得它是一个UIControl,而不是UIViewController的子类(它有一个view属性)。
你确定你不想要这样的东西:
[CommuneSliderController.view removeFromSuperview];
答案 2 :(得分:0)
如果这是C ++,我会说“有一个指向一个类的指针,你试着说pClass.foo
而不是pClass->foo
”,或者是“view
”的类型由于某种原因,您尝试访问的变量未知。也许这对Objective-C也有帮助。