【问题标题】:Xcode : sharing content via Action SheetXcode:通过 Action Sheet 分享内容
【发布时间】:2015-11-03 15:27:47
【问题描述】:

我想复制这种行为(见下图)并使用这种操作表分享我的应用程序中的内容。

问题是:

这真的是行动表吗?我在任何地方都找不到 iOS 7 或 8 的教程。不知道如何继续。

共享选项是否取决于用户的配置?

提示将不胜感激。

【问题讨论】:

  • 它的UIActivityViewController ...不是操作表
  • 如何在 UIActivityViewController 中添加 Instagram?

标签: ios objective-c iphone swift uiactionsheet


【解决方案1】:

不在UIActionSheet,在UIActivityController,这是iOS的默认功能。

objective-C

- (void)presentActivityController:(UIActivityViewController *)controller {

    // for iPad: make the presentation a Popover
    controller.modalPresentationStyle = UIModalPresentationPopover;
    [self presentViewController:controller animated:YES completion:nil];

    UIPopoverPresentationController *popController = [controller popoverPresentationController];
    popController.permittedArrowDirections = UIPopoverArrowDirectionAny;
    popController.barButtonItem = self.navigationItem.leftBarButtonItem;

    // access the completion handler
    controller.completionWithItemsHandler = ^(NSString *activityType,
                                              BOOL completed,
                                              NSArray *returnedItems,
                                              NSError *error){
        // react to the completion
        if (completed) {
            // user shared an item
            NSLog(@"We used activity type%@", activityType);
        } else {
            // user cancelled
            NSLog(@"We didn't want to share anything after all.");
        }

        if (error) {
            NSLog(@"An Error occured: %@, %@", error.localizedDescription, error.localizedFailureReason);
        }
    };
}

-(void)sendMessage {
    //create a message
    NSString *theMessage = @"Some text we're sharing with an activity controller";
    NSArray *items = @[theMessage];

    // build an activity view controller
    UIActivityViewController *controller = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil];

    // and present it
    [self presentActivityController:controller];
}

斯威夫特

let shareText = "Hello, world!"

if let image = UIImage(named: "myImage") {
    let vc = UIActivityViewController(activityItems: [shareText, image], applicationActivities: [])
     present(vc, animated: true, completion: nil)
}

试试这些链接获取教程

  1. http://nshipster.com/uiactivityviewcontroller/

  2. http://www.codingexplorer.com/add-sharing-to-your-app-via-uiactivityviewcontroller/

  3. http://roadfiresoftware.com/2014/02/how-to-add-facebook-and-twitter-sharing-to-an-ios-app/

斯威夫特

https://www.hackingwithswift.com/example-code/uikit/how-to-share-content-with-uiactivityviewcontroller

【讨论】:

【解决方案2】:

您可以通过使用 UIActivityController 类来实现此结果。

请查看此链接:- http://nshipster.com/uiactivityviewcontroller/

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2014-03-12
    • 2017-04-16
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多