Ich mache eine app, in die ich ein facebook share (feed) dialog integrieren muss. Ich habe alles auf https://developers.facebook.com/docs/mobile/ios/build/ gelesen, und ich konnte facebook share (feed) -Dialog laden, wenn die App fertig gestartet wurde. Aber mein Problem ist, dass ich xcode 4.3 verwende, d. H. Storyboard, und ich möchte den Facebook-Feed-Dialog auf Knopfdruck laden.popup facebook füttern dialog (für pinnwand posten) in ios xcode 4,3 (storyboard)
machte ich eine andere Ansicht-Controller, und fügen Sie das ganze Zeug von Funktion AppDelegate (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
in seiner -(void) viewDidload
und war in der Lage „Login-Seite“ zu laden und dann Seite meiner „Facebook-App“.
Danach, wenn ich die Erlaubnis, meine Facebook-App erlauben es nicht "feed Dialog" besagen
Hier ist meine viewController.h Datei
#import "FBConnect.h"
@interface ViewController : UIViewController<FBSessionDelegate,FBDialogDelegate>
{
Facebook *facebook;
}
@property (nonatomic, retain) Facebook *facebook;
@end
-Hier meine ViewController.m Datei ist
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize facebook=_facebook;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
facebook = [[Facebook alloc] initWithAppId:@"284727404938450" 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];
}
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
[facebook dialog:@"feed" andDelegate:self];
}
aber hier sind zwei Methoden, die in AppDelegate Datei verwendet werden
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [ facebook] handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [ facebook] handleOpenURL:url];
}
Ich weiß, in xib, dass diese Methoden sein sollten:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [[_ViewController facebook] handleOpenURL:url];
}
// For iOS 4.2+ support
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[_ViewController facebook] handleOpenURL:url];
}
Dieses Verfahren verantwortlich sind, einen Feed-Dialog für die aktuelle „facebook“ Instanz (Face * facebook) für Aufspringen.
Mein Problem ist, dass wir im Storyboard kein "Fenster" haben und Controller-Intents anzeigen, also denke ich, dass diese beiden Methoden nicht für die facebook-Instanz meines aktuellen ViewControllers aufgerufen werden. Wie kann ich diese beiden Funktionen für meine "facebook" -Instanz aufrufen, wobei mein viewController keine Instanz der AppDelegate-Datei ist?
Bitte helfen Sie mir.
Dank arbeiten werden, war es sehr hilfreich ... –