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

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

请注意.h中的是UIView,而不是我的视图的InstallViewController.如何添加对视图控制器的引用?我需要能够设置其委托.
DAX*_*lic 69
通过指定嵌入segue的标识符并在方法中检索相应的视图控制器,存在另一种解决方案 prepareForSegue:
这种方式的优点是您不必依赖于添加子视图控制器的特定顺序,因为每个子视图控制器都是通过唯一的segue标识符嵌入的.
更新2013-01-17 - 示例
- (void) prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{
// -- Master View Controller
if ([segue.identifier isEqualToString:c_SegueIdEmbedMasterVC])
{
self.masterViewController = segue.destinationViewController;
// ...
}
// -- Detail View Controller
else if ([segue.identifier isEqualToString:c_SegueIdEmbedDetailVC])
{
self.detailViewController = segue.destinationViewController;
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
c_SegueIdEmbedMasterVC&c_SegueIdEmbedDetailVC是具有故事板中定义的segue ID的相应ID的常量.
vfr*_*chi 14
当您添加容器视图时,xcode会调用UIViewController方法 addChildViewController:
在您的情况下,您可以在SplashViewController的列表中获取容器ViewController查找它childViewControllers,如下所示:
for (UIViewController *childViewController in [self childViewControllers])
{
if ([childViewController isKindOfClass:[InstallViewController class]])
{
//found container view controller
InstallViewController *installViewController = (InstallViewController *)childViewController;
//do something with your container view viewcontroller
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我昨天有同样的疑问:)
| 归档时间: |
|
| 查看次数: |
24437 次 |
| 最近记录: |