UITabBarController如何工作?

时间:2011-03-11 11:33:54

标签: iphone uiviewcontroller

我正在制作一个与UITabBarController类似的自定义东西 - 一个管理子ViewControllers的UIViewController。父UIViewController应该管理添加和删除子UIViewControllers的视图。

看来如果我这样做,我需要手动呼叫[UIViewController viewWillAppear]和朋友。是这样的吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

你为什么要这样做?为什么不使用UITabBarController?

无论如何......我会尝试这样的事情

- (void) selectViewControllerAtIndex:(int)index {
    [[self.viewControllers objectAtIndex:self.selectedVCIndex].view removeFromSuperview];
    self.selectedVCIndex = index;
    [self.view addSubView:[self.viewControllers objectAtIndex:index].view];
    [self.view setNeedsLayout];
}

但从未尝试过。

答案 1 :(得分:1)

也许你想用这些方法创建一个单身人士:

@interface RootViewController : UIViewController {

    UIViewController *currentVC;

}

-(void) destroyCurrent;
-(void) switchToViewController: (int) controller;

-(void) switchToViewController: (int) controller {

    [self destroyCurrent];

    switch (controller) {
        case 0:
            MyViewController *viewController = [[MyViewController alloc] init];
            currentVC = viewController;
            break;
        //case 1: ...
        default:
            break;
    }

    [self.view addSubview:currentVC.view];
}

-(void) destroyCurrent {

    if (currentVC) {
        [currentVC.view removeFromSuperview];
        [currentVC release];
        currentVC = nil;
    }
}

通过调用switchToViewController: (int) controller来更改视图控制器。