iOS self.delegate即使在设置后也为零
我有一个控制器,它被实例化并推送到导航控制器上,如下所示- 在ParentVC.m中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
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];
}