2012-11-18 2 views
0

.h, .m .m 파일 및 두 개의 appDelegate 파일이있는 샘플 코드가 있습니다. 프로젝트가 내 앱에하는 작업을 추가하고 싶습니다. 처음 두 파일은 ViewController 파일이므로 드래그 할 필요가 있지만 다른 두 파일은 AppDelegate이고 분명히 두 개의 App Delegate를 가질 수 없습니다.페이스 북에서 요청 응용 프로그램 대리인을 보내십시오.

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

AppDelegate에 이후 같은 기능을 사용하지 않는 다음의 UIViewController 파일의하는 .m 파일에이 코드가 있기 때문에 그러나이 샘플의 경우, 응용 프로그램 대리인이 적절한의 ViewController로 사용되는 앱 willBecomeActive ... 어떻게 UIViewController 파일에서 파일을 변환 할 수 있습니까? 델리게이트 대신 컨트롤러를 호출하려면 위 코드에서 무엇을 변경해야합니까 (내 AppDelegate는 그대로 유지됩니다).

이 코드는 여기에 있습니다 : https://github.com/fbsamples/ios-3.1-howtos/tree/master/SendRequestsHowTo ... 다음 열려있는 프로젝트 : SendRequestsHowTo ... 그것은 단지 4 파일

P.S.입니다 나는 애플 리케이션 델리게이트와 같은 무언가를 만들어야 만한다고 생각한다.

답변

1

SendRequestsHowTo에서 프로젝트로 코드를 옮기고 싶다는 것을 이해할 수 있습니다. AppDelegate를 통해 Facebook을 사용하고 싶지 않으십니까? 새 클래스 (예 : FacebookManager)를 만들 수 있습니다. 그런 다음 SendRequestsHowTo의 AppDelegate에서 FacebookManager로 코드를 이동하면 싱글 톤으로 만들 수 있습니다. 그럼 당신의 ViewController에서 액세스 할 수 있습니다

FacebookManager *manager = [FacebookManager sharedManager]; 
[manager openSessionWithAllowLoginUI:NO] 

및 AppDelegate에에서 handleOpenURL에

:

- (BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation { 
    self.openedURL = url; 
    // attempt to extract a token from the url 
    return [[FacebookManager sharedManager] handleOpenURL:url]; 
} 

은 다음과 같아야합니다,의 Info.plist에 CFBundleURLTypes을 추가하는 것을 잊지 마십시오

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>fb1234567890</string> 
     </array> 
    </dict> 
</array> 

Facebook iOS Safari "Cannot Open Page Error" When Authenticating User with Single-Sign-On

+0

그러나 handleopenurl, i kee 델리게이트? – Alessandro

+0

이 작업은 내가 수행 한 작업이며 (인터페이스 코드에 FACEBOOK API가 필요함) : https://github.com/Alexmitico45/FacebookRequests/downloads ... archive.zip (4 개 파일) 다운로드 및 다운로드 여전히 작동하지 않습니다 – Alessandro

+0

당신의 FacebookViewController는 ** - (BOOL) application : (UIApplication *) application openURL : (NSURL *) url sourceApplication : (NSString *) sourceApplication annotation : (id) annotation ** 메소드를 포함하고 있습니다. UIApplicationDelegate에서 가져와 AppDelegate 클래스에서 사용해야합니다. –

관련 문제