Как загрузить подпредставление из основного вида? - PullRequest
0 голосов
/ 12 июня 2009

Я очень новичок в Obj-C и изучаю разработку для iphone. Мой вопрос, как добавить подпредставление от делегата приложения. Допустим, я добавил подпредставление «MainView» из метода «applicationDidFinishLaunching».

- (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"?

Заранее спасибо за помощь.

Ответы [ 3 ]

0 голосов
/ 12 июня 2009

Возможно, вы захотите ознакомиться с примером Utility App - он демонстрирует переключение между двумя представлениями с анимацией и добавление / удаление представлений из родительских представлений.

0 голосов
/ 12 июня 2009

вы можете захотеть создать контроллер навигации в главном представлении, а затем вставить в него дочерний контроллер при вызове showChildView. Вы получите бесплатную кнопку навигации назад

0 голосов
/ 12 июня 2009

ну, сначала вы должны удалить исходный вид, а перед вставкой нового подпредставления сделайте это так

- (IBAction)showChildView:(id)sender {
    if (self.childViewController == nil) {
        ChildViewController *childController = [[ChildViewController alloc] initWithNibName:@"ChildView" bundle:nil];
        self.childViewController             = childController;
        [childController release];
    }
    [self.mainViewControlle.view removeFromSuperView];
    [self.view insertSubview:childViewController.view atIndex:0];
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...