2013-11-27 1 views
1

저는 iOS 개발에 약간 익숙하며 조금 문제가 있습니다.appDelegate 메소드에서보기의 버튼 텍스트를 변경하려고합니다.

내 앱에 iOS 로그인 용 FB SDK를 구현 했으므로 로그인해도 문제가 없습니다.

그러나 FB 세션의 상태에 따라 '로그 인'에서 '로그 아웃'으로 단일 버튼 텍스트를 변경하려고합니다. 합니다 (FB 세션 상태 변경 처리) 내 AppDelegate에에서

, 나는 이런 내 주요 뷰 컨트롤러에서 두 가지 방법 전화 했어 ...

helloappViewController * vc = [[helloappViewController alloc]init]; 
[vc showLogInButton]; 

을 ... 그리고

helloappViewController * vc = [[helloappViewController alloc]init]; 
[vc showLogOutButton]; 

- (void) showLogInButton { 
    NSLog(@"Changing button text to 'Login'."); 
    [self.buttonLogInLogOut setTitle:@"Login" forState:UIControlStateNormal]; 
} 


- (void) showLogOutButton { 
    NSLog(@"Changing button text to 'Logout'."); 
    [self.buttonLogInLogOut setTitle:@"Logout" forState:UIControlStateNormal]; 
} 

나는이 방법을 알고 호출되고있다 helloappViewController에서

방법이 있습니다 제대로 콘솔 로그 출력을 볼 수 있기 때문에 제대로 호출되고 있으며 내가 설정 한 다른 콘솔 로그 출력 때문에 FB를 통해 로그인 및 로그 아웃되었음을 알고 있습니다.

그러나 단추 제목 텍스트는 변경되지 않습니다.

누구나 내가 잘못 될지도 모릅니다.

Thx.

+0

이 전무 버튼 위치 : FB 컨트롤러에서

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(fbDidChange) name: FBDidChangeNotification object: nil]; - (void) fbDidChange { // change button title } 

? – Larme

+0

죄송합니다, 이해 해주십시오. 당신은 정교 할 수 있습니까? – user1418711

+0

버튼에 연결 하시겠습니까? – Sandeep

답변

0

봅니다 코드 이동

[self showLogInButton]; 

일이 같은 helloappViewController 뷰 컨트롤러의 viewDidLoad 방법에

[self showLogOutButton]; 

:

helloappViewController * vc = [[helloappViewController alloc]init]; 
vc.fbIsConnected = YES; 

viewDi에서 DLOAD : VC에서

if (self.fbIsConnect) 
{ 
    [self showLogOutButton]; 
} 
else 
{ 
    [self showLogInButton]; 
} 

:

[[NSNotificationCenter defaultCenter] postNotificationName:FBDidChangeNotification object:self]; 
+0

또한, 앱이 처음로드 될 때 viewDidAppear 메서드에서 이미 이것을 호출하고 있으므로 올바른 버튼이 설정되어 있고 정상적으로 작동합니다. 문제는 appDelegate에서 이러한 메서드를 호출하는 것이 나를 위해 작동하지 않는다는 것입니다. – user1418711

+0

FB 세션 상태가 변경되면 즉시 버튼 텍스트를 변경해야합니다. 이렇게하면 첫 번째보기로드시 버튼 텍스트 만 변경됩니다 (앱은 단일보기 앱). 문제가있는 것은'showLogOutButton'과'showLogInButton' 메소드에서 버튼을 제대로 참조하지 않는다는 것입니다. – user1418711

+0

당신은 fb – stosha

관련 문제