首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tabbarcontroller和facebook

tabbarcontroller和facebook
EN

Stack Overflow用户
提问于 2012-03-27 17:49:19
回答 2查看 402关注 0票数 0

我正在尝试在我的应用程序代码中实现Facebook。实际上,我有一个简单的TabbarController和2 ViewController。

我的AppDelegate代码:

代码语言:javascript
复制
@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;

方法代码:

代码语言:javascript
复制
- (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

代码语言:javascript
复制
#import "Facebook.h"
@interface FirstViewController : UIViewController <FBRequestDelegate, FBDialogDelegate, FBSessionDelegate> {
}

FirstViewController.m

代码语言:javascript
复制
#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‘的参数

EN

回答 2

Stack Overflow用户

发布于 2012-03-27 18:02:34

我想说UITabBarController *不是FBSessionDelegate ..。将协议添加为<UIApplicationDelegate, UITabBarControllerDelegate,FBSessionDelegate >,然后

代码语言:javascript
复制
facebook = [[Facebook alloc] initWithAppId:@"12345678910" andDelegate:self];
票数 0
EN

Stack Overflow用户

发布于 2012-03-27 18:05:46

在我的应用程序中,我像你一样在AppDelegate中声明和初始化facebook对象。然而,我让AppDelegate使用这些(就像另一个回答说的那样):FBRequestDelegate、FBDialogDelegate、FBSessionDelegate。之后,我将所有的facebook登录/注销/post.等方法放在app委托类中。

之后,您只需将facebook对象从FirstViewController传递给didFinishLaunchingWithOptions即可。

如果你不明白,让我知道,我会给你更多的细节。我可能解释得不太清楚。

PS:我可能错了,但从我在网络上看到的情况来看,在应用程序delagete中声明方法更容易一些,它用选项完成了启动,然后将它们传递给特定的视图控制器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9894849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档