我似乎在NSNotification上卡住了,原因不明。
我在一个IBAction按钮方法中发布一个通知。当用户点击该按钮时,我希望能够收到通知,以便我可以在文本字段中设置文本。如果没有他们点击按钮,NSString仍将为空 - 这就是为什么我需要知道他们何时这样做的原因。
因此,在按钮方法中,我有以下代码:
- (IBAction)suggestionsButton:(UIButton *)sender {
self.usernameSelected = sender.titleLabel.text;
[[NSNotificationCenter defaultCenter] postNotificationName:@"UserTappedButton" object:self];
}
这是在UITableviewCell类中。
然后我在负责此操作的视图控制器中添加观察者:
(void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(userPickedAuserNameFromSuggestion:) name:@"UserTappedButton" object:nil];
}
我已经检查了以下内容:
- 观察者方法先于发布方法被调用(是的)
- 两种方法的名称都正确
- 选择器签名正确
我还查看了一些SO答案,但没有帮助。
各位,我是否遗漏了什么?
*更新 *
抱歉 - 我想调用的方法如下:
-(void)userPickedAuserNameFromSuggestion: (NSNotification *)notification
{
NSLog (@"Selected Username: %@", self.usernameCell.usernameSelected);
}
然而它没有被调用。
viewWillAppear
中使用addObserver:
,在viewWillDisappear
中使用removeObserver:
。 - Akhilrajtr