我正在尝试使用故事板并让事情正常运行.我已经在我现有的一个视图中添加了一个Container View.当我尝试在我的视图控制器.h文件(ctrl-drag)中添加对此的引用时,我得到了一个IBOutlet UIView *containerView.如何获取对容器视图的视图控制器的引用?我需要容器视图控制器,所以我可以将它的委托设置到我的视图控制器,这样他们就可以相互"交谈".
我将故事板设置为:

它在我的.h文件中引用为:

请注意.h中的是UIView,而不是我的视图的InstallViewController.如何添加对视图控制器的引用?我需要能够设置其委托.
我注意到XCode中的UI组件:Container View.

根据提供的描述,我想利用它在几个不同的屏幕上显示我的应用程序的可重用组件.我一直在网上寻找尝试找到基本教程或一些文档,但我还没有发现任何有用的东西.
有人可以建议如何连接并使用它吗?目前container view看起来似乎没有调整大小是有问题的.任何有关如何启用此功能的提示也将受到赞赏.
干杯.
我想添加一个tableViewController作为containerViewController的子视图控制器(如下所示).根据Apple的View Controller Programming Guide,我可以通过我的containerViewController中的以下代码行实现这一点:
[self addChildViewController:tableViewController];
[self.view addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
事实上,这很好.现在的问题是我不想将tableViewController的视图添加为containerViewController的根视图的子视图.相反,我想将它添加为containerView的子视图(参见图像),它本身是containerViewController的根视图的子视图.所以我改变了上面的代码如下:
[self addChildViewController:tableViewController];
[self.contentView addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
现在,当我启动应用程序时,它立即崩溃并出现此错误:
由于未捕获的异常'UIViewControllerHierarchyInconsistency'而终止应用程序,原因:'子视图控制器:应该有父视图控制器:但实际的父级是:'
这里有什么问题?是不是可以将childViewController的视图添加到其containerViewController 的特定子视图中?或者如何在视图控制器层次结构中没有错误的情况下实现此目的?

parentviewcontroller addsubview ios childviewcontroller container-view
我正在尝试制作一个跨越三个标签的表单.您可以在下面的屏幕截图中看到标签的位置.当用户点击选项卡时,容器视图应该更新并显示我拥有的特定视图控制器.

标签1 =查看控制器1
标签2 =查看控制器2
标签3 =查看控制器3
上面显示的视图控制器具有PPAddEntryViewController.m类.我在这个类中创建了一个Container视图的插座,现在有一个Container View属性:
@property (weak, nonatomic) IBOutlet UIView *container;
Run Code Online (Sandbox Code Playgroud)
我也为我的标签准备了IBActions:
- (IBAction)tab1:(id)sender {
//...
}
- (IBAction)tab2:(id)sender {
//...
}
- (IBAction)tab3:(id)sender {
//...
}
Run Code Online (Sandbox Code Playgroud)
如何在这些IBActions中设置容器以更改容器视图包含的视图控制器?
在其他一些事情中,这是我尝试过的:
UIViewController *viewController1 = [self.storyboard instantiateViewControllerWithIdentifier:@"vc1"];
_container.view = viewController1;
Run Code Online (Sandbox Code Playgroud)
......但它不起作用.提前致谢.
我有一个viewController,它包含一个ContainerView(它正在设置一个ViewController).我正在设置一个segue,在prepareforsegue方法中,我希望获得一个嵌入在容器View中的viewController的引用.我怎么做.我知道使用segue.destinationViewController我们可以获得对UIViewController的引用,但我还想设置ContainerView指向的viewController.
我正在尝试将子视图控制器添加到父视图控制器,并让父视图控制器通知子视图控制器旋转事件.但是,旋转消息不会转发到子视图控制器(这是默认行为).为什么没有发生此默认行为?
环境:iOS 7,XCode 5,OSX 10.9
我正在按照Apple文档中的说明实现自定义容器视图控制器:"创建自定义容器视图控制器".我正在尝试建立一个转发轮换事件的简单父子关系.总体层次结构完全如图14-1重新绘制的文档中所示:
ParentViewController --------> RootView
| / \
| / \
? / \
ChildViewController ---> ChildView \
\
OverLayView
Run Code Online (Sandbox Code Playgroud)
我使用parentViewController中的清单4-1中的代码(unityViewController = childViewController,unityView = childView)来完成此操作:
// In the ParentViewController
// Called by the Application Delegate in application:didFinishLaunchingWithOptions:
- (void)addUnityViewController:(UIViewController *)unityViewController withUnityView:(UIView *)unityView
{
[self addChildViewController:unityViewController]; // 1. Establish Child parent relationship
unityView.frame = self.view.frame; // 2. Set the frame (explicitly or with constraints)
[self.view addSubview:unityView]; // 2.1 Add the subview AFTER you …Run Code Online (Sandbox Code Playgroud) 我有一个UIViewController容器视图,其中包含一个UITableView.
在UITableView中我有一个NSFetchController,NSPredicate它使用来自intial的变量UIViewcontroller(我希望你还在我身边).对于用户更改容器视图的一个实例,不会更新.
发生这种情况时,如何强制在容器视图上重新加载/更新?我环顾四周,但没有看到这个话题.
具体来说,我有一个更改按钮日期的UIDatePicker.这是需要更新的.

要从代码创建两个视图控制器之间的父/子关系,基本上只需执行以下操作:
[self addChildViewController:childViewController];
[self.view addSubview:childViewController.view];
Run Code Online (Sandbox Code Playgroud)
其中self是父视图控制器.
但是,如果我想完全从Interface Builder创建相同的关系呢?
或者换句话说:有没有办法使用Interface Builder重新创建方法addChildViewController的行为?
我没有找到很多关于这方面的文档,这是一篇关于该主题的未解决的帖子:https://devforums.apple.com/message/455758#455758
如果没有正确设置addChildViewController关系,任何旋转方法都不会转发到我的子视图控制器,这是我的问题所在.
这就是我在IB中所做的:
图片中的第一个"View"对象是我的父视图控制器的视图,而突出显示的"View"是子视图控制器的视图("Item View Controller").

容器控制器还通过另外的IBOutlet保留其子实例:
@property (nonatomic, strong) IBOutlet ItemsViewController *itemsViewController;
Run Code Online (Sandbox Code Playgroud)
谢谢
更新1:如果我在容器控制器的viewDidLoad中手动设置父/子关系,则所有旋转方法都会正确转发给子项.
[self addChildViewController:self.itemsViewController];
Run Code Online (Sandbox Code Playgroud)
但我真的不知道这是否是正确的做法,因为我想用IB做所有事情.
更新2:感谢@micantox提示他使用对象库中的"容器视图",我已将我的xib文件转换为Storyboard,现在子视图控制器已添加到其父级,所以我没有必要使用addChildViewController从代码中手动添加它,并按预期转发旋转方法.
"容器视图"基本上实现了嵌入segue,仅支持iOS 6.
这是我的Storyboard更新的截图:

interface-builder uiviewcontroller uistoryboardsegue childviewcontroller container-view
我在使用带有容器视图的自动布局时遇到了一些问题(在两种情况下:使用ios5中使用的视图包含模式和一个简单的容器视图).
我有一种自定义的Master Detail控制器,我可以在一些用户操作后重新调整左侧容器的大小,并且关联右侧控制器必须根据未使用的新空间调整大小.
对于"细节"控制器,我使用Xib设置控制器并使用自动布局我内部有一些视图.在视觉格式中他们会是这样的:
这只是解决问题的一种表现形式.
如果我尝试调整细节controller.view框架的大小,这会正确扩展,但子视图不会.
在该控制器的 - (void)viewDidLayoutSubviews方法中,我尝试手动设置框架并且可以正常工作但是我认为这不是正确的事情因为我正在使用自动布局!
如果我有一个通用视图和包含图像视图的子视图,如果我使用autolayout从xib定义该视图,如果运行时在视图设置后更改框架子视图(edample的图像视图)不调整大小,则会再次出现此问题.
有人可以帮帮我吗?
谢谢!
我的应用程序中有5个选项卡.我需要添加一个浮动按钮,以便在我的所有标签上快速操作.
我已经设法使用容器视图在标签栏的正上方添加浮动按钮.因此容器位于右下方,并有一个视图控制器,用于固定按钮.
问题是,如果我将表视图添加到我的页面,由于容器视图在前面,表视图的一部分会被隐藏.如何使容器视图透明,以便用户可以正确地查看和滚动表视图.
container-view ×10
ios ×8
objective-c ×2
addsubview ×1
autolayout ×1
ipad ×1
parent-child ×1
rotation ×1
swift ×1
uitableview ×1
uiview ×1
xcode ×1
xcode7 ×1