2014-09-24 1 views
0

어떻게 imageView에서 이미지를 공유합니까? 다음은 imageView 코드입니다.UIActivityViewController 로컬 이미지

UIImage *myImage = [UIImage imageNamed:[NSString stringWithFormat: 
              @"image%d.jpg", i]]; 
    UIImageView *myImageView = [[UIImageView alloc] initWithImage:myImage]; 

    [myImageView setFrame:CGRectMake(xOrigin, 0, 
            self.view.frame.size.width, 
            self.view.frame.size.height)]; 

    _postImage.image = myImage; 
} 

- (IBAction)shareButtonPressed:(id)sender { 
NSArray *activityItems; 

if (_postImage.image != nil) { 
    activityItems = @[_postImage.image]; 
        } 

UIActivityViewController *activityVC = [[UIActivityViewController alloc]  
initWithActivityItems:activityItems                    
    applicationActivities:nil]; 
    [self presentViewController:activityVC animated:YES completion:nil]; 
} 

오류가 발생했습니다 - 공유 할 수있는 작업이 없습니다. 미리 감사드립니다.

+0

activityItems 배열이 0이 아닌 것은 확실합니다. _postImage.image에 액세스 할 수 있습니까? 먼저 브레이크 포인트 또는 nslog를 사용하여 이러한 것들을 찾으십시오. – iHulk

답변

0

아마도 _postImage을 초기화하는 것을 잊었을 것입니다. 대체하려고 :

_postImage.image = myImage; 

로 :

_postImage = [[UIImageView alloc] initWithImage:myImage]; 
0

는 activityViewController에 이미지를 얻으려면 당신이 보여주고 싶은 그 이미지와 사용자 정의 활동을 작성해야합니다. 다음은 이미지로 맞춤 활동을 만들고 보여주는 단계입니다.

1. UIActivity, 즉 "CustomActivity"를 서브 클래 싱하는 새 파일을 만듭니다. 그런 다음 CustomActivity.m 파일에서 다음 방법을 적어 두어야합니다.

- (NSString *)activityType { 
return @"yourappname.Review.App"; //type 
} 

- (NSString *)activityTitle { 
return @"Review App";  //title for activity 
} 

- (UIImage *)activityImage { 
    return [UIImage imageNamed:@"Icon.png"]; //image 
} 

- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems { 
    NSLog(@"%s", __FUNCTION__); 
    return YES; 
} 

- (void)prepareWithActivityItems:(NSArray *)activityItems { 
    NSLog(@"%s",__FUNCTION__); 
} 

- (UIViewController *)activityViewController { 
    NSLog(@"%s",__FUNCTION__); 
    return nil; 
} 

- (void)performActivity { 
//What your cust activity woudl perform when user tap onto it. 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.apple.com/"]]; 

    [self activityDidFinish:YES]; 
} 

그런 다음 mainVC에서이 클래스를 가져 와서이 사용자 정의 액티비티를 사용하기 위해 다음 행을 추가 할 수 있습니다.

NSString *textItem = @"provide your string"; 
UIImage *imageToShare = [UIImage imageNamed:@"Icon.png"]; //Provide your activity image 

NSArray *items = [NSArray arrayWithObjects:textItem,imageToShare,nil]; 

custAct = [[CustomActivity alloc]init]; 

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:@[custAct]]; 
[self presentViewController:controller animated:YES completion:nil]; 

이제 수행 할 활동이있는 이미지를 볼 수 있습니다. 이해가 잘못 되었다면 나를 바로 잡으십시오.

관련 문제