Я очень новичок в Obj-C и изучаю развитие iphone. Мой вопрос заключается в том, как добавить subview из делегата приложения. Допустим, я добавил subview под названием «MainView» из метода «applicationDidFinishLaunching».Как загрузить subview с основного вида?
- (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».
Как скрыть «MainView», когда я нажал кнопку и покажу только содержимое «ChildView»?
Спасибо за вашу помощь заранее.
Как эта функция, «showChildView:» определена в «MainViewController.m», будет работать сообщение «[self.mainViewController.view removeFromSuperView]»? Когда я строю проект с этой строкой кода, у него есть ошибка complier: «запрос для элемента mainViewController для члена не в структуре или объединении». Любая идея, что здесь происходит? – sungl
как насчет MyAppDelegate * appDelegate = (MyAppDelegate *) [[UIApplication sharedApplication] delegate]; MainViewController * main = (MainViewController *) [appDelegate mainViewController]; UIWindow * window = (UIWindow *) [appDelegate window]; [main.view removeFromSuperView]; [window addSubview: childViewController.view]; – Zteeth