Iphone 在子视图上设置委托

Iphone 在子视图上设置委托,iphone,ios,ipad,uiviewcontroller,uisplitviewcontroller,Iphone,Ios,Ipad,Uiviewcontroller,Uisplitviewcontroller,我有一个splitViewController,它有一个主视图和详细视图控制器。下面的代码来自主视图,它在详图中创建新视图: UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%@",[self.defaultSettingsMenuItems objectAtIndex:indexPath.row]]]; [s

我有一个splitViewController,它有一个主视图和详细视图控制器。下面的代码来自主视图,它在详图中创建新视图:

UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%@",[self.defaultSettingsMenuItems objectAtIndex:indexPath.row]]];

[self.detailViewController.view addSubview:controller.view];
detailViewController是detailViewController的全局实例。在detailViewController中,我有许多文本字段,需要使用UITExtFieldDelegate。但是,我认为detailViewController在这一点上不是self,这就是为什么我在detailViewController中使用TextFieldDelegate方法时会出现EXC_BAD_访问错误


编辑:我现在发现子视图委托方法仅适用于我在故事板中设置为rootViewCOntroller关系的viewController。例如,如果我在上面的默认菜单设置中有6个视图,那么我在序列图像板中设置为第一个和根视图的任何视图都将正常工作。显示的任何和所有其他子视图(在主视图中进行新选择)将无法正常工作。我认为这将有助于诊断问题。

我不熟悉情节提要,但我看不到您在任何地方设置
detailViewController
的委托。您可能需要像self.detailViewController.delegate=self这样的东西将控制权让给子视图之前的某个位置

这就是我所需要的,第二行:

UIViewController *viewController= [self.detailViewController.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%@",[self.defaultSettingsMenuItems objectAtIndex:indexPath.row]]];

if (self.detailViewController.childViewControllers.count >= 1) {
    NSLog(@"childViewControllers: %@",self.detailViewController.childViewControllers);
    [[self.detailViewController.childViewControllers objectAtIndex:0] removeFromParentViewController]; 

}

[self.detailViewController addChildViewController:viewController];

[self.detailViewController.view addSubview:viewController.view];

编辑:我已经用if look更新了我的答案,以从堆栈中删除viewControllers。有点老套,但很实用。

当我从子视图中记录代理时,我得到了DetailViewControllert,但我不完全理解您的问题所在=\坦白说,我也不这么认为。我不明白为什么如果委托设置正确,子视图会从简单的UITextField委托中崩溃。确定中断的代码行(带有断点),并开始逐步执行,直到找到返回错误数据的系统函数为止?这很烦人,但很管用。通常情况下,我不在我的范围之内。故事板对我来说是黑魔法。我可能会想出一些东西,但不是不学习整个概念-我没有时间。祝你好运。