iPhone: Загрузить изображение в Instagram

Я написал код для загрузки изображения в instagram, который выглядит следующим образом:

CGRect rect = CGRectMake(20 ,20 , 200, 200);
    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIGraphicsEndImageContext();

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *jpgPath = [documentsDirectory stringByAppendingPathComponent:@"after2sm.ig"];

    NSString *fileURL = [NSString stringWithFormat:@"file://%@",jpgPath];
    NSURL *igImageHookFile = [NSURL fileURLWithPath:fileURL];

    self.dic.UTI = @"com.instagram.photo";

    self.dic = [self setupControllerWithURL:igImageHookFile usingDelegate:self];
    self.dic=[UIDocumentInteractionController interactionControllerWithURL:igImageHookFile];

    [NSDictionary dictionaryWithObject:@"My Caption" forKey:@"InstagramCaption"];
    [self.dic presentOpenInMenuFromRect:rect inView:self.view animated:YES];

Но он открывает лист действий с опцией «instagram», но когда я нажимаю на него, ничего не происходит ... не могли бы вы мне помочь


person user1954352    schedule 14.05.2013    source источник
comment
Я хочу загрузить изображение в instagram   -  person user1954352    schedule 14.05.2013


Ответы (1)


Попробуйте это, в этом коде установите свое изображение в объект imgUpload

    - (IBAction)InstagramButtonClick
   { 

        CGRect rect = CGRectMake(0.0, 0.0, 612, 612);
        UIGraphicsBeginImageContext(rect.size);
        [imgUpload drawInRect:rect];

        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();
        NSString  *savePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/test.igo"];
        [UIImageJPEGRepresentation(img, 1.0) writeToFile:savePath atomically:YES];

        NSURL *igImageHookFile = [[NSURL alloc] initWithString:[[NSString alloc] initWithFormat:@"file://%@", savePath]];


        self.dic.UTI = @"com.instagram.photo";
        self.dic = [self setupControllerWithURL:igImageHookFile usingDelegate:self];

        self.dic=[UIDocumentInteractionController interactionControllerWithURL:igImageHookFile];
          self.dic.annotation = [NSDictionary dictionaryWithObject:@"your message" forKey:@"InstagramCaption"];
        [self.dic presentOpenInMenuFromRect: CGRectZero    inView: self.view animated: YES ];

    }

//Добавляем делегата UIDocumentInteractionControllerDelegate, далее следует метод делегата

- (UIDocumentInteractionController *) setupControllerWithURL: (NSURL*) fileURL usingDelegate: (id <UIDocumentInteractionControllerDelegate>) interactionDelegate {
        UIDocumentInteractionController *interactionController = [UIDocumentInteractionController interactionControllerWithURL: fileURL];
        interactionController.delegate = interactionDelegate;
        return interactionController;

}
person pratik bhiyani    schedule 14.05.2013
comment
Спасибо за ответ. Но я получаю тот же результат с вашим кодом. - person user1954352; 14.05.2013
comment
размер изображения должен быть больше 620*620 - person pratik bhiyani; 14.05.2013
comment
и вы проверяете, что приложение intstagram должно быть установлено на устройстве. Это необходимо - person pratik bhiyani; 14.05.2013
comment
Мое изображение имеет размер 650 * 650, и на устройстве установлено приложение Instagram. - person user1954352; 14.05.2013
comment
Как создать файл test.igo? - person user1954352; 14.05.2013
comment
Вы добавили делегата UIDocumentInteractionControllerDelegate в файл .h? - person pratik bhiyani; 14.05.2013
comment
называется ваш метод делегата? - person pratik bhiyani; 14.05.2013
comment
[imgUpload drawInRect:прямая]; При этом imgUpload не определяется. Так собственно что это? - person user1954352; 14.05.2013
comment
это ваше изображение, которое вы хотите загрузить. установить его - person pratik bhiyani; 14.05.2013
comment
вы должны установить это, иначе ничего не произойдет - person pratik bhiyani; 14.05.2013
comment
Рад помочь. хорошего дня :) - person pratik bhiyani; 14.05.2013