gpt4 book ai didi

ios - ContainerViewController 委托(delegate)给 ChildViewController

转载 作者:行者123 更新时间:2023-11-28 19:49:24 25 4
gpt4 key购买 nike

ContainerViewController 将方法 -delegateMethod 委托(delegate)给 ChildViewController
但是在下面的代码中,没有调用-delegateMethod
我认为这是因为 _childViewController 已经发布了。
如何修复它以运行 -delegateMethod

ContainerViewController.h

@protocol ContainerViewDelegate <NSObject>

- (void)delegateMethod;

@end

@interface ContainerViewController : UIViewController

@property (nonatomic, assign) id<ContainerViewDelegate> delegate;

@end

ContainerViewController.m

@interface ContainerViewController () {
ChildViewController *_childViewController;
}

//...

- (void)viewDidLoad
{
_childViewController = [[WeeklyViewController alloc]init];
[self addChildViewController:_childViewController];
[self.view addSubview:_childViewController.view];
[_childViewController didMoveToParentViewController:self];
}

- (void)buttonAction {
[self.delegate delegateMethod];
}

ChildViewController.m

@interface ChildViewController () <ContainerViewDelegate>

//...

- (void)delegateMethod {
NSLog(@"succeed!");
}

最佳答案

您永远不会设置委托(delegate),因此 self.delegate 将为 nil。你应该这样做,

    - (void)viewDidLoad
{
_childViewController = [[WeeklyViewController alloc]init];
self.delegate = _childViewController;
[self addChildViewController:_childViewController];
[self.view addSubview:_childViewController.view];
[_childViewController didMoveToParentViewController:self];
}

关于ios - ContainerViewController 委托(delegate)给 ChildViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30159578/

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