Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS SDK的模式视图中使用Facebook登录?_Ios_Facebook_Ios4 - Fatal编程技术网

如何在iOS SDK的模式视图中使用Facebook登录?

如何在iOS SDK的模式视图中使用Facebook登录?,ios,facebook,ios4,Ios,Facebook,Ios4,我正在尝试修改Facebook iOS SDK附带的演示。 我需要登录按钮出现在第二个模态视图中 当我点击“登录”按钮时,它会打开Facebook应用程序并寻求授权,然后返回到我的应用程序,但fbDidLogin不会被触发 我已经从这里走了所有的步骤 这是我正在使用的代码。请帮我找出我遗漏了什么 我使用的是Xcode 4.1和iOS SDK 4.3 myAppAppDelegate.h #import <UIKit/UIKit.h> #import "loginView.h" #im

我正在尝试修改Facebook iOS SDK附带的演示。 我需要登录按钮出现在第二个模态视图中

当我点击“登录”按钮时,它会打开Facebook应用程序并寻求授权,然后返回到我的应用程序,但fbDidLogin不会被触发

我已经从这里走了所有的步骤

这是我正在使用的代码。请帮我找出我遗漏了什么

我使用的是Xcode 4.1和iOS SDK 4.3

myAppAppDelegate.h

#import <UIKit/UIKit.h>
#import "loginView.h"
#import "firstView.h"

@class firstView;

@interface myAppAppDelegate : NSObject <UIApplicationDelegate> {
    firstView* controller;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet firstView *firstViewViewController;

@end
#import <UIKit/UIKit.h>

@interface firstView : UIViewController

-(IBAction)openLoginView:(id)sender;

@end
#import <UIKit/UIKit.h>
#import "FBConnect.h"

@interface loginView : UIViewController<FBRequestDelegate,
FBDialogDelegate,
FBSessionDelegate>{
    NSArray* _permissions;
    Facebook* _fb;
}
@property(readonly) Facebook *fb;
-(IBAction)fbButtonClick:(id)sender;

@end
firstView.h

#import <UIKit/UIKit.h>
#import "loginView.h"
#import "firstView.h"

@class firstView;

@interface myAppAppDelegate : NSObject <UIApplicationDelegate> {
    firstView* controller;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet firstView *firstViewViewController;

@end
#import <UIKit/UIKit.h>

@interface firstView : UIViewController

-(IBAction)openLoginView:(id)sender;

@end
#import <UIKit/UIKit.h>
#import "FBConnect.h"

@interface loginView : UIViewController<FBRequestDelegate,
FBDialogDelegate,
FBSessionDelegate>{
    NSArray* _permissions;
    Facebook* _fb;
}
@property(readonly) Facebook *fb;
-(IBAction)fbButtonClick:(id)sender;

@end
loginView.h

#import <UIKit/UIKit.h>
#import "loginView.h"
#import "firstView.h"

@class firstView;

@interface myAppAppDelegate : NSObject <UIApplicationDelegate> {
    firstView* controller;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet firstView *firstViewViewController;

@end
#import <UIKit/UIKit.h>

@interface firstView : UIViewController

-(IBAction)openLoginView:(id)sender;

@end
#import <UIKit/UIKit.h>
#import "FBConnect.h"

@interface loginView : UIViewController<FBRequestDelegate,
FBDialogDelegate,
FBSessionDelegate>{
    NSArray* _permissions;
    Facebook* _fb;
}
@property(readonly) Facebook *fb;
-(IBAction)fbButtonClick:(id)sender;

@end

首先,这是如何编译的

@synthesize firstViewViewController = _ firstViewViewController;
您没有在任何地方声明\u firstViewController。
其次,我认为您正在混合视图和视图控制器。
最后,处理FB授权(loginView)的视图控制器应该实现

FBRequestDelegate、FBDialogDelegate、FBSessionDelegate

因此,您的loginView.h应该如下所示:

@接口loginView:UIViewController< FBRequestDelegate、FBDialogDelegate、FBSessionDelegate>{


谢谢你的回答。我认为在iOS SDK 4.3中,你不必声明viewController,只需声明属性并合成它。你说“我认为你在混合视图和视图控制器”是什么意思?关于“FBRequestDelegate、FBDialogDelegate、FBSessionDelegate”,这是一个复制/粘贴错误,我已经用代码编辑了我的问题。我只是觉得你的视图控制器被称为“loginView”很奇怪。不管怎样,你的fbButtonClick方法被激活了吗?你成功登录了吗?你从来没有达到fbDidNotLogin功能吗?你对名为“loginView”的视图控制器的看法是正确的,它应该被称为“loginViewController”我的错误。启动“fbButtonClick”方法,然后启动“login”方法。然后,它切换到Facebook应用程序并请求授权,我授权,当它返回到我的应用程序时,“fbDidLogi”n方法不会被启动,也不会启动“fbDidNotLogin”。谢谢你的帮助。对不起,但是你的按钮在哪里触发了
fbButtonClick
方法?你忘记粘贴了吗?其次,请检查你的Facebook应用程序的设置。在“移动”部分,你会看到“Apple iOS”在那里,你需要输入你的iOS包ID。类似:。最后,确保你的.plist文件中有fb应用ID(URL类型>项0>URL方案)。再次感谢您的帮助!启动
fbButtonClick
的按钮位于名为loginView.xib的nib文件中,这里我有一个
UIButton
连接到
fbButtonClick
方法。此外,我已将iOS捆绑包ID输入到我的Facebook应用程序设置页面,最后我在.plist文件和stil中有fb应用程序ID我不工作。但是我在Facebook.m文件中将
[自我授权使用FBAppauth:YES safariAuth:YES];
更改为
[自我授权使用FBAppauth:NO safariAuth:NO];
,现在它可以工作,但不使用Facebook应用程序身份验证模式(单点登录流)