我对Obj-C和学习iphone开发很陌生。 我的问题是如何从应用程序委托添加子视图。 可以说我从“applicationDidFinishLaunching”方法中添加了名为“MainView”的子视图。如何从主视图加载子视图?
- (void)applicationDidFinishLaunching:(UIApplication *)application {
MainViewController *aViewController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
self.mainViewController = aViewController;
[aViewController release];
[window addSubview:mainViewController.view];
// Override point for customization after application launch
[window makeKeyAndVisible];
}
“MainView.xib” 文件上有一个按钮,以显示其子视图。当按钮被点击时,它调用“showChildView”方法。
- (IBAction)showChildView:(id)sender {
if (self.childViewController == nil) {
ChildViewController *childController = [[ChildViewController alloc] initWithNibName:@"ChildView" bundle:nil];
self.childViewController = childController;
[childController release];
}
[self.view insertSubview:childViewController.view atIndex:0];
}
从这段代码,当应用程序启动时,它显示一个按钮“MainView”。但是,当我点击按钮时,该按钮仍然可以看到以及“ChildView.xib”文件中的内容。
当我按下按钮并仅显示“ChildView”的内容时,如何隐藏“MainView”?
感谢您的帮助提前。
由于这个函数,“showChildView:”在“MainViewController.m”中定义,将“[self.mainViewController.view removeFromSuperView]”的消息工作?当我使用这行代码构建项目时,它会产生编译器错误:“请求成员'mainViewController'的东西不在结构或联合中。” 不知道这里发生了什么? – sungl 2009-06-12 05:51:00
MyAppDelegate * appDelegate =(MyAppDelegate *)[[UIApplication sharedApplication] delegate]; MainViewController * main =(MainViewController *)[appDelegate mainViewController]; UIWindow * window =(UIWindow *)[appDelegate window]; [main.view removeFromSuperView]; [window addSubview:childViewController.view]; – Zteeth 2009-06-14 03:46:25