我正在尝试制作一个标签栏应用程序,首先我跟着This Facebook grap api教程,当我触摸登录时,我的项目工作得很好,显示弹出窗口
之后我只添加了一个标签栏而且我输了,没有错误但是程序没有启动facebook登录显示。我已经使用断点来理解为什么程序没有启动Facebook登录显示,但无法理解,因为它只是没有错误。它必须是标签栏。
现在它的节目卡在Facebook登录显示popin
我的app delegate.h
#import <UIKit/UIKit.h>
@class FBFunMe;
@interface FBFunAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UITabBarController *rootController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *rootController;
@end
app delegate.m
#import "FBFunAppDelegate.h"
#import "FBFunMe.h"
#import "FBFunLoginDialog.h"
@implementation FBFunAppDelegate
@synthesize window = _window;
@synthesize rootController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[self.window addSubview:rootController.view];
[self.window makeKeyAndVisible];
return YES;
}
我知道其余的代码正在运行,因为我有一个相同的项目没有标签栏工作正常。
使其有效的任何建议或示例代码?
_____----------- EDIT ------------________
在app委托中,当我尝试此代码时,它会显示我需要的FBFunLoginDialog,但我仍然需要在我的登录按钮中不在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
因为我为了登录Facebook而调用了一些变量和appID以及工作人员
FBFunLoginDialog *loginController=[[FBFunLoginDialog alloc] init];
[self.window addSubview:rootController.view];
[self.rootController presentModalViewController:loginController animated:YES];
[window makeKeyAndVisible];
return YES;
在FBFunMe.h中
@interface FBFunMe :UIViewController <FBFunLoginDialogDelegate,UITextFieldDelegate> {
FBFunLoginDialog *_loginDialog;
UIView *_loginDialogView;
}
在FBFunMe.M
- (IBAction)loginButtonTapped:(id)sender {
NSString *appId = @"3888888883";
NSString *permissions = @"publish_stream";
if (_loginDialog == nil) {
self.loginDialog = [[[FBFunLoginDialog alloc] initWithAppId:appId
requestedPermissions:permissions delegate:self] autorelease];
self.loginDialogView = _loginDialog.view;
}
if (_loginState == LoginStateStartup || _loginState == LoginStateLoggedOut) {
_loginState = LoginStateLoggingIn;
[_loginDialog login];
} else if (_loginState == LoginStateLoggedIn) {
_loginState = LoginStateLoggedOut;
[_loginDialog logout];
}
[self refresh];
}