2012-09-27 21 views
11

mam aplikację, która dzieli z Instagram zbudowany dla iOS5 i teraz w iOS6, dzieląc już nie działa, chociaż canOpenURL powraca prawda i kod wykonywany. Obrazy są zapisywane w folderze dokumentów aplikacji z rozszerzeniem .igo. Jest to przekazywane do instagrama z com.instagram.exclusivegram.UIDocumentInteractionController nie pracuje już w iOS6

Kod jest poniżej, to wchodzi if i wyświetla „Tu w”, ale nie otworzy Udostępnij oknie jak kiedyś u dołu ekranu.

 NSLog(@"%@", _imgToUpload); 
     NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"]; 
     if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) { 
      uidController = [[UIDocumentInteractionController alloc] init]; 
      //imageToUpload is a file path with .igo file extension 
      uidController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:_imgToUpload]]; 
      uidController.UTI = @"com.instagram.exclusivegram"; 
      uidController.delegate = self; 
      CGRect navRect = self.view.frame; 
      [uidController presentOpenInMenuFromRect:navRect inView:[UIApplication sharedApplication].keyWindow animated:YES]; 
      NSLog(@"here in"); 
     } 

_imgToUpload dostarcza również prawidłową ścieżkę do pliku.

Dziękuję Nick

Odpowiedz

11

Podobnie zrobił kilka testów i znalazł rozwiązanie. Nie pokazuj w keyWindow.

[uidController presentOpenInMenuFromRect:navRect inView:self.view animated:YES]; 

Ja testowałem to i będzie rozwiązać problem.

+0

dziękuję miałem zdobione to i zapomniał odpowiedzieć! dobre wyniki –

+0

dzięki temu działa. Ale czy istnieje jakiś sposób bezpośredniego wejścia na Instagram, bez arkusza czynności "Otwórz w"? – GeneCode

0

Innym powodem kontroler uidocumentinteraction nie pracuje w iOS6 jest to, że nowy panel arkusz action/launch (pokazuje dostępnych aplikacji, aby otworzyć doc) jest obecnie wykorzystywana. Moja aplikacja który pracował dobrze iBooks spuszczania z iOS5 nie udało, bo rozpoczęła od viewDidLoad który był teraz zbyt wcześnie i mam błąd o aktualnym widoku kontrolera „którego widok nie jest w hierarchii okna”, więc zmieniłem kod do performselector po opóźnieniu 1 sekunda. Aplikacja dzwoni teraz do aplikacji iBooks za pośrednictwem nowego panelu.