2
我一直在尋找幾周的教程,無法找到任何在iOS中實現FB的故事板示例。Facebook iOS sdk xcode 4.3 /故事板
我有我的應用程序打開FBloginscreen,請求用戶身份驗證的應用程序,然後返回到應用程序... 像其他一些用戶,fbdidlogin和handleopenurl方法不叫。我相信我做錯了什麼,但就是不知道是什麼。 我使用的是默認視圖控制器在我的故事板(我沒有編程創建VC ),所以我可能需要做的東西。
從我的理解是handleopenurl方法需要在我的應用程序delegate.m文件,而不是在我看來Controller.m或者文件,但我不知道應該如何寫,以及如何連接一個UIViewController對象我創建在VC在我的故事板(帶有按鈕和標籤,我使用)。
ViewController.h (relevant to FB)
#import "FBConnect.h"
@interface ViewController : UIViewController
<UIImagePickerControllerDelegate,
UINavigationControllerDelegate, FBSessionDelegate, FBDialogDelegate>
{
Facebook *facebook;
}
@property (nonatomic,retain) Facebook *facebook;'
ViewController.m (relevant to FB)
#import "ViewController.h"
@implementation ViewController;
@synthesize facebook;
-(void)LogintoFB
{
facebook = [[Facebook alloc] initWithAppId:@"345872345487883" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:nil];
NSLog(@"did log in");
}
}
// Pre iOS 4.2 support
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
NSLog(@"-4.2 got calleld");
return [facebook handleOpenURL:url];
}
// For iOS 4.2+ support
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSLog(@"4.2+ got called");
return [facebook handleOpenURL:url];
}
}
- (void)fbDidLogin {
NSLog(@"fbDidLogin");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
[facebook dialog:@"feed" andDelegate:self];
}'
,如果你還可以直接我在iOS設備上的將是巨大的實執行時使用的故事板的教程。
謝謝!