此项目无法共享。请在whatsApp上分享时选择其他项目

时间:2017-09-27 06:50:34

标签: objective-c

第一次应用安装和分享图片无法正常工作,它显示警告:

  

此项目无法共享。请选择其他项目。

我将尝试第二次成功分享图像。有什么问题?

-(void)TwitterAndmanyMore
{
    UIImage * image = _imageView.image;
    NSArray * items = @[image];
   UIActivityViewController *controller = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil];

    // and present it
    [self presentActivityController:controller];
}
- (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
        NSLog(@"----retu------%@",returnedItems);
        if (completed)
        {

            [self showContine];
            //[self viewWillAppear:YES];
            // 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);
        }
    };
}

1 个答案:

答案 0 :(得分:0)

使用以下代码解决此问题

-(void)TwitterAndmanyMore
{
//    UIImage * image = _imageView.image;
//    NSLog(@"Image Data %@",image);
//    NSArray * items = @[@"", image];

    tempImage = [UIImage imageNamed:@"Sample.jpg"];
    tempImage = _imageView.image;
    NSString *theMessage = @"";
    NSArray *items;

    CGImageRef cgref = [tempImage CGImage];
    CIImage *cim = [tempImage CIImage];



    if (cim != nil || cgref != NULL)
    {
        items = @[theMessage,tempImage];
    }
    else
    {
        items = @[theMessage];
    }
     NSLog(@"Image Data %@",items);
    // build an activity view controller
    UIActivityViewController *controller = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil];

    // and present it
    [self presentActivityController:controller];
}
- (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
        NSLog(@"----retu------%@",returnedItems);
        if (completed)
        {

            [self showContine];
            //[self viewWillAppear:YES];
            // 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);
        }
    };
}