gpt4 book ai didi

ios - 容器 View Controller 委托(delegate)分配

转载 作者:可可西里 更新时间:2023-11-01 05:04:33 24 4
gpt4 key购买 nike

我有一个带有两个嵌入式 Controller 的父 View Controller ,我使用 Storyboard 将它们链接起来。我试图通过使用委托(delegate)来允许 ViewController 之间的通信。

问题是,我无法尝试分配委托(delegate),因为我在父级中没有对我的 ChildViewController 的引用。基本上,我正在寻找 ParentViewController.m 中的某个地方来插入代码

ChildViewController.delegate = self;

我尝试为每个 ChildViewController 创建 IBOutlets,但我似乎无法在 Storyboard 中正确分配它们。

最佳答案

有几种方法可以做到这一点。在代码中,您可以使用 self.childViewControllers 获取对 subview Controller 的引用,这会为您提供一个包含所有子项的数组。首选方式可能是使用 prepareForSegue:sender:。这将在实例化父 Controller 时调用,您可以使用 segue.destinationViewController 获取对子 Controller 的引用。给每个嵌入的 segues 标识符,这样你就可以知道哪个 segues 正在调用 prepareForSegues。像这样:

@interface ViewController ()
@property (strong,nonatomic) UIViewController *topController;
@property (strong,nonatomic) UIViewController *bottomController;
@end

@implementation ViewController


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"topEmbed"]) {
self.topController = segue.destinationViewController;
}else if ([segue.identifier isEqualToString:@"bottomEmbed"]){
self.bottomController = segue.destinationViewController;
}
}

关于ios - 容器 View Controller 委托(delegate)分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com