在我的自定义UITableViewCell中,我在NSNotificationCenter中添加了一个观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stopActivityIndicator) name:@"stopActivityIndicator" object:nil];
我在UIViewController中发布了一个通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"stopActivityIndicator" object:nil];
此函数“ stopActivityIndicator”没有被调用,是什么原因导致的?
编辑:
ExploreViewController.m
-(void)showCorrectBannerAfterPlusButtonClicked:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"stopActivityIndicator" object:nil];
}
ExploreViewController包含一个带有ExploreTableViewCells的UITableView。
ExploreTableViewCell.m
- (IBAction)plusButtonClicked:(id)sender
{
self.plusButton.hidden = YES;
[self.plusButtonActivityIndicator startAnimating];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(stopActivityIndicator) name:@"stopActivityIndicator" object:nil];
}
-(void)stopActivityIndicator
{
_plusButton.hidden = NO;
[self.plusButtonActivityIndicator stopAnimating];
[[NSNotificationCenter defaultCenter]removeObserver:self name:@"stopActivityIndicator" object:nil];
}
答案 0 :(得分:0)
好吧,问题,什么时候调用“ showCorrectBannerAfterPlusButtonClicked”?因为这是您发布tableViewCell观察到的通知的方法。
我看到的是通知观察者的添加和删除,但是我没有看到UIViewController如何知道何时调用单元格的“ plusButtonClicked”,因此也许未调用发布通知的方法。
此外,请谨慎使用单元格,请记住此时是否应删除观察者。