iOS self.delegate即使在设置后也为零

iOS self.delegate即使在设置后也为零,ios,objective-c,uinavigationcontroller,delegates,viewcontroller,Ios,Objective C,Uinavigationcontroller,Delegates,Viewcontroller,我有一个控制器,它被实例化并推送到导航控制器上,如下所示- 在ParentVC.m中 ThingContainerViewController *thingContainer = [[ThingContainerViewController alloc] init]; thingContainer.delegate = self; [self.navigationController pushViewController:thingContainer animated:YES]; - (vo

我有一个控制器,它被实例化并推送到导航控制器上,如下所示-

在ParentVC.m中

ThingContainerViewController *thingContainer = [[ThingContainerViewController alloc] init];
thingContainer.delegate = self;

[self.navigationController pushViewController:thingContainer animated:YES];
- (void)addItemViewController:(id)controller didFinishEnteringItem:(NSInteger)page {
    self.page = page;
}
现在我想在thingContainer关闭时向ParentVC发送一个值。因此,我实现了一个委托,如下所示:

在ParentVC.h中

@interface ParentVC : UIViewController <..., ThingContainerViewControllerDelegate>
在ThingContainer.m中

- (IBOutlet) ... closeButtonWasTapped:(UIButton *)button {
    NSLog(@"%ld", (long)indexOfPage);
    [self.delegate addItemViewController:self didFinishEnteringItem:indexOfPage];
    [[self navigationController] popViewControllerAnimated: YES];
}

此时,self.delegate为null,因此永远不会调用ParentVC中的方法。知道如何修复它吗?

委托属性应该是
弱的
,但是您关于
articleContainer
的问题是有效的。也许您应该设置thingContainer的委托属性!?;-)@Aminegm Awad对不起,这是粘贴错误。我已经设置了正确的委托,但仍然不起作用。@Suchi您能展示一下ParentVC的整个方法吗?您可以在其中创建ThingContainer吗?该方法中没有其他内容。它在选择表的行时触发@BRAIN89委托属性应该是
,但是您关于
articleContainer
的问题是有效的。也许您应该设置thingContainer的委托属性!?;-)@Aminegm Awad对不起,这是粘贴错误。我已经设置了正确的委托,但仍然不起作用。@Suchi您能展示一下ParentVC的整个方法吗?您可以在其中创建ThingContainer吗?该方法中没有其他内容。它在选择表的行时触发@大脑89
- (IBOutlet) ... closeButtonWasTapped:(UIButton *)button {
    NSLog(@"%ld", (long)indexOfPage);
    [self.delegate addItemViewController:self didFinishEnteringItem:indexOfPage];
    [[self navigationController] popViewControllerAnimated: YES];
}