Tag: uicontainerview

addChildViewController实际上做了什么?

我只是第一次进入iOS开发,我不得不做的第一件事就是实现一个自定义的容器视图控制器 – 让我们调用它的SideBarViewController – 交换了几个可能的子视图控制器它显示,几乎完全像一个标准的标签栏控制器 。 (这几乎是一个标签栏控制器,但有一个可隐藏的侧面菜单,而不是一个标签栏。) 按照Apple文档中的说明,每当向容器中添加一个子ViewController时,我都会调用addChildViewController 。 我用于交换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在这里做了什么,我意识到我不知道。 除了在.childViewControllers数组中粘贴新的ViewController .childViewControllers ,它对任何东西都没有影响。 从子控制器的视图到我在故事板上设置的子控制器的操作和插口仍然可以正常工作,即使我从不调用addChildViewController ,也无法想象会有什么影响。 事实上,如果我重写我的代码不调用addChildViewController ,而是看起来像这样… – (void)showViewController:(UIViewController *)newViewController { // Get the current child […]

如何添加在Objective-C中有自己的UIViewController的子视图?

我正在努力与自己的UIViewControllers子视图。 我有一个UIViewController视图(淡粉色)和两个button在toolbar 。 我想要在第一个button被按下时显示蓝色视图,而按下第二个button时要显示黄色视图。 如果我只想显示一个视图,应该很容易。 但蓝色视图将包含一个表,所以它需要它自己的控制器。 那是我的第一课。 我从这个问题开始,在那里我学到了我需要一个控制器的表。 所以,我要回来,在这里采取一些婴儿的步骤。 下面是我的Utility ViewController (主视图控制器)和另外两个控制器(蓝色和黄色)的一个简单起点的图片。 想象一下,当首次显示Utility ViewController (主视图)时,蓝色(默认)视图将显示在粉色视图所在的位置。 用户将能够点击两个button来回,粉红色的视图将永远不会显示。 我只想让蓝色的视图去粉红色的视图,黄色的视图去粉红色的视图。 我希望这是有道理的。 我试图使用addChildViewController 。 从我所看到的,有两种方式来做到这一点:在storyboard的容器视图或编程addChildViewController 。 我想以编程方式做到这一点。 我不想使用NavigationController或选项卡栏。 我只是想添加控制器,并按下相关联的button时正确的视图到粉红色的视图。 以下是我到目前为止的代码。 我想要做的就是显示粉红色视图所在的蓝色视图。 从我所看到的,我应该能够addChildViewController和addSubView。 这个代码不是为我做的。 我的困惑越来越好。 有人可以帮我把粉红色的视图显示在蓝色的视图? 除了在viewDidLoad中显示蓝色视图之外,此代码无意做任何其他操作。 IDUtilityViewController.h #import <UIKit/UIKit.h> @interface IDUtilityViewController : UIViewController @property (strong, nonatomic) IBOutlet UIView *utilityView; @end IDUtilityViewController.m #import "IDUtilityViewController.h" #import "IDAboutViewController.h" @interface IDUtilityViewController () @property […]