0

我正在尝试制作一个标签栏应用程序,首先我遵循了这个Facebook grap api 教程,当我触摸登录时,我的项目运行良好,如图所示,显示弹出窗口

在此处输入图像描述 在此处输入图像描述

之后我只添加了一个标签栏,我迷路了,没有错误,但程序没有启动 facebook 登录显示。我已经使用断点来理解为什么程序没有启动 facebook 登录显示但无法理解,因为它只是没有错误。它必须是带有标签栏的东西。

现在它的程序卡在弹出 facebook 登录显示 在此处输入图像描述 在此处输入图像描述

我的应用程序委托.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

应用委托.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;
}

我知道其余代码可以正常工作,因为我有一个相同的项目,没有标签栏可以正常工作。

有什么建议或示例代码可以让它工作吗?

_____ - - - - - -编辑 - - - - - - ________

在应用程序委托中,当我尝试此代码时,它会显示我需要的 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];

}
4

0 回答 0