Ios 从另一个viewcontroller调用Facebook sdk上的函数

Ios 从另一个viewcontroller调用Facebook sdk上的函数,ios,facebook,sdk,viewcontroller,Ios,Facebook,Sdk,Viewcontroller,我是个编程新手,所以请不要把我烫得太厉害。我下载了Facebook的Hackbook版本。但是,我有许多视图控制器将使用“共享此”按钮,但我不知道如何操作。我知道我想使用已经存在的功能 @implementation ViewConcertsViewController ... -(IBAction)shareThis:(id)sender{ [appDelegate.facebook authorize:nil delegate:self]; APICalls

我是个编程新手,所以请不要把我烫得太厉害。我下载了Facebook的Hackbook版本。但是,我有许多视图控制器将使用“共享此”按钮,但我不知道如何操作。我知道我想使用已经存在的功能

@implementation ViewConcertsViewController
...

-(IBAction)shareThis:(id)sender{
[appDelegate.facebook authorize:nil delegate:self];
                APICallsViewController *apiViewController = [[APICallsViewController alloc] initWithNibName:nil bundle:nil];
                [apiViewController shareButton];
}
然后在我的APICallsViewController中,我有:

-(void)shareButton{
[self performSelector:@selector(//what do I put in here!!!!)];
}
先谢谢你

这就是我所做的:

@implementation ViewConcertsViewController
...
-(IBAction)shareThis:(id)sender{
    APICallsViewController *apiViewController = [[APICallsViewController alloc] initWithNibName:nil bundle:nil];
    [apiViewController shareButton:sender];
}


@implementation APICallsViewController
...
-(void)shareButton:(id)sender{
    SEL selector = NSSelectorFromString(@"getAppUsersFriendsNotUsing");
    if ([self respondsToSelector:selector]) {
        [self performSelector:selector];
    }
}

谢谢。

看起来您只需要在APICallsViewController中更改Hackbook示例中的方法


但如果您希望发送AppRequest(与网页上的共享按钮不同),请签出
-(void)apiDialogRequestsSendTarget:(NSString*)friend

那么你想分享什么呢?一个状态更新,一张照片,一个URL链接,一个Facebook应用程序请求。很多东西要分享,所以很难知道你想去哪里。[林克]http://developers.facebook.com/docs/reference/iossdk/request/. 还有她的[链接]http://developers.facebook.com/docs/reference/dialogs/ 有7个默认的一行两行代码来共享内容

当前有7个对话框可供您使用:

** -“提要”对话框允许用户将故事发布到他们的时间线和朋友的新闻提要中

-OAuth对话框允许用户授权应用程序作为身份验证流的一部分

-“添加页面”选项卡对话框允许用户将应用程序添加到他们管理的Facebook页面

-“好友”对话框允许用户向其他用户发送好友请求

-“支付”对话框允许用户使用Facebook信用卡进行购买

-“请求”对话框允许用户向其一个或多个朋友发送请求

-“发送”对话框允许用户向一个或多个朋友发送Facebook消息。 **

但是,如果你能提供更多任务的细节,那么就更容易提供帮助和示例。 根据我的经验,在xcode中设置应用程序项目以使用fb sdk和来自苹果和Facebook的自定义应用程序Id是困难的部分。我强烈建议从头开始一个Xcode项目。这将需要更多的时间,但一旦你设置了一个应用程序,从开始到登录,并通过FBRequest获得好友数据,你将能够快速移动


从一个示例应用程序开始,您将始终在后台处理无法修复或改进的内容,或者无法真正按照您的意愿使用API

看起来您只需要在APICallsViewController中更改Hackbook示例中的方法


但如果您希望发送AppRequest(与网页上的共享按钮不同),请签出
-(void)apiDialogRequestsSendTarget:(NSString*)friend

那么你想分享什么呢?一个状态更新,一张照片,一个URL链接,一个Facebook应用程序请求。很多东西要分享,所以很难知道你想去哪里。[林克]http://developers.facebook.com/docs/reference/iossdk/request/. 还有她的[链接]http://developers.facebook.com/docs/reference/dialogs/ 有7个默认的一行两行代码来共享内容

当前有7个对话框可供您使用:

** -“提要”对话框允许用户将故事发布到他们的时间线和朋友的新闻提要中

-OAuth对话框允许用户授权应用程序作为身份验证流的一部分

-“添加页面”选项卡对话框允许用户将应用程序添加到他们管理的Facebook页面

-“好友”对话框允许用户向其他用户发送好友请求

-“支付”对话框允许用户使用Facebook信用卡进行购买

-“请求”对话框允许用户向其一个或多个朋友发送请求

-“发送”对话框允许用户向一个或多个朋友发送Facebook消息。 **

但是,如果你能提供更多任务的细节,那么就更容易提供帮助和示例。 根据我的经验,在xcode中设置应用程序项目以使用fb sdk和来自苹果和Facebook的自定义应用程序Id是困难的部分。我强烈建议从头开始一个Xcode项目。这将需要更多的时间,但一旦你设置了一个应用程序,从开始到登录,并通过FBRequest获得好友数据,你将能够快速移动


从一个示例应用程序开始,您将始终在后台处理无法修复或改进的内容,或者无法真正按照您的意愿使用API

谢谢你的回复。我想向目标朋友发送请求(-(void)ApidiologRequestsSendTarget:(NSString*)friend)。请查看Hackbook中的ApidiologRequestsSendToUsers:方法。如果您希望发送请求,您可以更改该方法以供使用。但是如果你想发送一条消息(比如网页上的共享按钮,这是另一回事),你需要创建一个Feed.Dialog并在用户墙上发布。如果您确实想向朋友发帖,请在同一ViewController中查看-(void)apiDialogFeedFriend:(NSString*)friendID方法。再次感谢您的回复。您的意思是,我无法在另一个视图控制器中调用APICallsViewController中的函数,但我必须修改它们并将它们放置在视图控制器中。哦,我明白了。您只需首先导入Hackbook控制器中的标题,然后需要获取对AppDelegate中创建的Facebook对象的引用。那么您应该可以调用此方法。谢谢您的帮助。我得到了它的工作,并更新了我的评论上面。谢谢你的回复。我想向目标朋友发送请求(-(void)ApidiologRequestsSendTarget:(NSString*)friend)。请查看Hackbook中的ApidiologRequestsSendToUsers:方法。如果您希望发送请求,您可以更改该方法以供使用。但是如果你想找一个
/*
 * Dialog: Feed for friend
 */
- (void)apiDialogFeedFriend:(NSString *)friendID {
    currentAPICall = kDialogFeedFriend;
    SBJSON *jsonWriter = [[SBJSON new] autorelease];

    NSArray* actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:
                                                           @"Get Started",@"name",@"http://m.facebook.com/apps/hackbookios/",@"link", nil], nil];
    NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks];
    // The "to" parameter targets the post to a friend
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   friendID, @"to",
                                   @"I'm using the Hackbook for iOS app", @"name",
                                   @"Hackbook for iOS.", @"caption",
                                   @"Check out Hackbook for iOS to learn how you can make your iOS apps social using Facebook Platform.", @"description",
                                   @"http://m.facebook.com/apps/hackbookios/", @"link",
                                   @"http://www.facebookmobileweb.com/hackbook/img/facebook_icon_large.png", @"picture",
                                   actionLinksStr, @"actions",
                                   nil];

    HackbookAppDelegate *delegate = (HackbookAppDelegate *)[[UIApplication sharedApplication] delegate];
    [[delegate facebook] dialog:@"feed"
                      andParams:params
                    andDelegate:self];

}