tabbarcontroller и Facebook API - PullRequest
       2

tabbarcontroller и Facebook API

0 голосов
/ 27 марта 2012

Я пытаюсь реализовать Facebook API в коде моего приложения.Практически у меня есть простой TabbarController с 2 ViewController.

Мой код приложения AppEelegate:

@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
   UIWindow *window;
   UITabBarController *tabBarController;
   Facebook *facebook;
}

@property (retain, nonatomic) IBOutlet UIWindow *window;
@property (retain, nonatomic) IBOutlet UITabBarController *tabBarController;
@property (retain, nonatomic) Facebook *facebook;

код метода:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   [self.window addSubview:self.tabBarController.view];
   [self.window makeKeyAndVisible];
    facebook = [[Facebook alloc] initWithAppId:@"12345678910" andDelegate:_tabBarController];
  ............

return YES;
}

FirstViewController.h

#import "Facebook.h"
@interface FirstViewController : UIViewController <FBRequestDelegate, FBDialogDelegate, FBSessionDelegate> {
}

FirstViewController.m

#import "Appdelegate.h"

-(IBAction)shareFacebook {
   AppDelegate *appdelegate  = (AppDelegate *)[[UIApplication sharedApplication] delegate];
   if (![appdelegate.facebook isSessionValid]) {
    NSArray *permissions = [[NSArray alloc] initWithObjects:
                            @"publish_stream", 
                            @"read_stream",
                            nil];
    [appdelegate.facebook authorize:permissions];
    [permissions release];
   }
 } 

Я получил предупреждение для этого кода: "andDelegate: _tabBarController" Отправка "UITabBarController *" параметру несовместимого типа 'id'

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

В моем приложении я объявляю и инициализирую объект facebook в AppDelegate, как и вы.Тем не менее, я заставил AppDelegate использовать их (как сказал другой ответ): FBRequestDelegate, FBDialogDelegate, FBSessionDelegate.После этого я поместил все методы facebook / login / logout / post..etc в класс делегата приложения.

После этого вы можете просто передать объект facebook в ваш FirstViewController из didFinishLaunchingWithOptions.

Если вы не понимаете, дайте мне знать, я дам вам более подробную информацию.Возможно, я не очень хорошо это объясню.

PS: я могу ошибаться, но из того, что я видел в Интернете, легче объявить методы в начале приложения delagete didfinishlaunchingwithoptions, а затем передать ихдля определенных контроллеров представления.

0 голосов
/ 27 марта 2012

я бы сказал, что UITabBarController * не является FBSessionDelegate ... добавьте протокол как <UIApplicationDelegate, UITabBarControllerDelegate,FBSessionDelegate >, а затем

facebook = [[Facebook alloc] initWithAppId:@"12345678910" andDelegate:self];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...