iPhone - после входа в facebook статус UISwitch не устанавливается на «Вкл» в методе -(void)fbDidLogin

Я реализовал вход в Facebook и проверил статус моего токена доступа в

-(void)fbDidLogin

Теперь у меня есть UITableView, где у меня есть переключатель Button как UISwitch, который включается, если у меня есть токен доступа. Проблема в том, что когда я получаю токен доступа

-(void)fbDidLogin 

вызывается метод. Здесь я устанавливаю переключатель тумблера, вызывая

[self.switch setOn:YES animated:YES];

но этого не происходит. когда я возвращаюсь и снова открываю эту страницу, она показывает правильный статус, но не когда я устанавливаю его в fbDidLogin. Есть предположения, почему это происходит?

Для аутентификации в Facebook он выходит за пределы приложения и возвращается, может быть, поэтому это происходит? но я вызываю веб-сервис из fbDidLogin, и он работает нормально.

код простой

- (void)fbDidLogin {    
    [self.switch setOn:YES animated:YES];    
}

person nachiket talwalkar    schedule 21.05.2012    source источник
comment
поддерживать флаг в appdelegate при входе или выходе из facebook, и теперь добавление кода в представлении будет отображаться методом, если флаг true включен, и наоборот   -  person Paresh Navadiya    schedule 21.05.2012
comment
Ни один из Viewdidload, Viewwillappear и viewdidappear этого контроллера не вызывается, когда он возвращается после аутентификации. Он приходит только в fbdidLogin.   -  person nachiket talwalkar    schedule 21.05.2012
comment
поддерживать флаг в appdelegate при входе или выходе из facebook. Теперь в методе (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *), если включен флаг true, и наоборот   -  person Paresh Navadiya    schedule 21.05.2012
comment
Да так и сделал, вот в чем проблема. Это не входит в CellForRowAtIndexPath. Я поставил там точку останова, но когда приложение выходит на передний план, оно просто не переходит к этому методу.   -  person nachiket talwalkar    schedule 21.05.2012
comment
Метод уведомления Post, когда приложение выходит на передний план, будет иметь логику [tableview reloadData];   -  person Paresh Navadiya    schedule 21.05.2012
comment
обратитесь к этой ссылке для уведомления   -  person Paresh Navadiya    schedule 21.05.2012
comment
У меня все еще не работает. Спасибо за помощь. Я опубликую здесь, если найду ответ. Будем очень признательны за любую дополнительную помощь. Спасибо.   -  person nachiket talwalkar    schedule 21.05.2012


Ответы (1)


где вы получаете токен доступа для fb добавить уведомление о публикации

[[NSNotificationCenter defaultCenter] postNotificationName:@"fbDidLogin" object:nil];

Теперь метод для первоначального входа в fb:

-(void)fbLogin
{
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(fbDidLogin) name:@"fbDidLogin" object:nil];
 // some logic for intial fb login page
 }

Также в методе fbDidLogin добавьте это

- (void)fbDidLogin 
{   
[[NSNotificationCenter defaultCenter]removeObserver:self name:@"fbDidLogin" object:nil]; 
[self.switch setOn:YES animated:YES];    
}

Здесь fbDIdLogin будет вызываться, как только будет получен токен доступа.

Аналогичный процесс можно выполнить для неудачного входа в fb, если токен доступа равен нулю.

person Paresh Navadiya    schedule 22.05.2012
comment
Вот и все.. !! Потрясающий. Именно то, что я хотел .. Большое спасибо. - person nachiket talwalkar; 22.05.2012