I am sending a username and password to an API and returning an ID if it's correct, or false if it's incorrect. I have a singleton set up to retrieve the data. I am wanting to return the data to my original view controller to use in methods depending on if I have false or an ID. But for some reason, it is not sending. Here is my code so far:
original view controller:
- (IBAction)btnLogIn:(id)sender
{
//get username and password from user, send to singleton
[[APIManager sharedManager] validateLoginWithUsername:[_lblUserName text] andPassword: [_lblPassword text]];
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; //set up notification center, invoke login_success or login_fail methods
[nc addObserver:self selector:@selector(login_success) name:@"loginValid" object:nil];
[nc addObserver:self selector:@selector(login_fail) name:@"loginInvalid" object:nil];
singleton:
if ([result isEqualToString:(@"false")])
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"loginInvalid" object:nil];
}
else
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"loginValid" object:nil];
}
It appears that you are calling
addObserver
after you callvalidateLoginWithUsername
. It is likely that the notification is being posted before you are listening for it.Call
addObserver
first. You should add some logging to verify this.