0
ContainerViewController
委托方法-delegateMethod
至ChildViewController
。
但在下面的代码中,-delegateMethod
未被调用。
我认为这是因为_childViewController
已经发布。
我该如何修复它才能运行-delegateMethod
?ContainerViewController委托给ChildViewController
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!");
}
_childViewController没有被释放。当你将它作为一个子项添加时,ContainerViewController获得了一个强指针。 – rdelmar