无法在我的 iOS 应用程序中使用共享按钮?

Can't get a Share Button to work in my iOS App?

我无法在我当前的应用程序中使用共享按钮,我在我以前的应用程序中成功地使用了一个,但我无法在我的新应用程序中使用它。我认为这可能是因为我的第一个应用程序只有一个 ViewController 而这个应用程序有多个。我试图在不同的视图控制器中执行此操作,而不是默认的主视图控制器。不确定我做错了什么。

//  MoreMenuViewController.h

#import <UIKit/UIKit.h>

@interface MoreMenuViewController : UIViewController

- (IBAction)tellFriend:(id)sender;


//  MoreMenuViewController.m

#import "MoreMenuViewController.h"

@implementation MoreMenuViewController

- (IBAction)tellFriend:(id)sender 
{   
    NSString *shareText = [NSString stringWithFormat:@"Check out Stories With Friends, a new word game for iPhone!"]; // Share message
    NSArray *itemsToShare = @[shareText];
    UIActivityViewController *activityVC =
    [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
    activityVC.excludedActivityTypes = @[];

    [MoreMenuViewController:activityVC animated:YES completion:nil];
}

对于最后一行代码,我得到一个错误:没有已知的 class 选择器方法 'animated:completion:.'

非常感谢帮助,谢谢!

尝试[self presentViewController:activityVC animated:YES completion:nil];

改为

您需要从 self 而不是 MoreMenuViewController:

调用此方法
[self presentViewController:activityVC
                   animated:YES
                 completion:nil];

如果你不需要排除类型,你也不需要调用这个 setter:

activityVC.excludedActivityTypes = @[];

更新:

Despite now being able to click the button the app crashes: -[MoreMenuViewController tellAFriend:]

这是因为你的方法的名称是 tellFriend: 而不是 tellAFriend: 你必须在没有重构的情况下从代码中重命名你的方法所以 linked IBAction 不知道改变。你需要做的是从你的 Storyboard 中删除这个 link 到你的实现文件。

单击您的按钮,然后单击操作 link 编辑到 tellAFriend 的十字: