addChildViewController实际做什么?
我只是第一次涉足iOS开发,而我要做的第一件事就是实现一个自定义容器视图控制器 -让我们称之为它SideBarViewController-交换掉它可能使用的几个子视图控制器中的一个显示,几乎完全像标准的Tab Bar Controller一样。(它几乎是一个标签栏控制器,但具有可隐藏的侧菜单而不是标签栏。) 按照Apple文档中的说明,addChildViewController每当将子ViewController添加到容器中时,我都会调用。我的代码换出了当前的子视图控制器,如下所示SideBarViewController: - (void)showViewController:(UIViewController *)newViewController { UIViewController* oldViewController = [self.childViewControllers objectAtIndex:0]; [oldViewController removeFromParentViewController]; [oldViewController.view removeFromSuperview]; newViewController.view.frame = CGRectMake( 0, 0, self.view.frame.size.width, self.view.frame.size.height ); [self addChildViewController: newViewController]; [self.view addSubview: newViewController.view]; } 然后,我开始尝试弄清addChildViewController这里所做的事情,然后我意识到自己不知道。除了坚持新ViewController的在.childViewControllers阵,它似乎对任何事情没有影响。即使我从未调用过addChildViewController,从子控制器的视图到我在情节提要上设置的子控制器的操作和输出仍然可以正常工作,而且我无法想象它还会影响什么。 确实,如果我将代码重写为not call addChildViewController,而是看起来像这样…… - (void)showViewController:(UIViewController *)newViewController { // Get the current child from a member variable …