15

저는 Xcode 4.2 (iOS SDK 5)에서 ShareKit 0.2.1을 사용하여 Twitter에서 텍스트를 공유하고 있습니다.ShareKit 모달보기 컨트롤러가 사라지지 않을 것입니다

enter image description here

을 그리고 이것은 내 코드입니다 : 그것은 잘 공유하지만 모달 뷰 컨트롤러가 늘 취소 버튼을 클릭 한 후에 공유 한 후 성공적으로 사라 (아래 참조)

-(IBAction)shareOnTwitter:(id)sender{ 


    // Item to share 
    NSString *text = @"Go away, modal view controller!"; 

    [SHKTwitter shareText:text]; 

} 

무엇 내가 틀렸어?

답변

30

나는 당신과 같은 문제가 있습니다. iOS 5 문제입니다. ShareKit은 UIViewController의 메소드를 parentViewController이라고하고 Apple 문서에 따르면 iOS 5에서 더 이상 사용할 수 없기 때문에 그 대신에 presentingViewController을 사용해야합니다. 그래서

는 SHK.m로 이동합니다 ShareKit 코드를 수정 서명 (void)hideCurrentViewControllerAnimated:(BOOL)animated와 방법을 발견하고 그것을 대체 :

- (void)hideCurrentViewControllerAnimated:(BOOL)animated 
{ 
    if (isDismissingView) 
     return; 

    if (currentView != nil) 
    { 
     // Dismiss the modal view 
     if ([currentView parentViewController] != nil) 
     { 
      self.isDismissingView = YES; 
      [[currentView parentViewController] dismissModalViewControllerAnimated:animated]; 
     } else if ([currentView presentingViewController] != nil) { 
      self.isDismissingView = YES; 
      [[currentView presentingViewController] dismissModalViewControllerAnimated:animated]; 
    } else 
     self.currentView = nil; 
    } 
} 

+0

이것은 내가 구현 한 해결책이다. –

+0

y 장치의 방향을 바꾸고있다. – WaaleedKhan

1

이것은 내 앱 중 하나에서 사용하는 코드입니다. 괜찮습니다.

NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/us/app/packager/id459511278?l=nl&ls=1&mt=8"]; 
NSString *twittertext = [[NSString alloc] initWithFormat: @"Tweet Text"]; 
SHKItem *item = [SHKItem URL:url twittertext]; 

// Share the item 
[SHKTwitter shareItem:item]; 
[twittertext release]; 
+0

[NSString stringWithFormat : @ "Tweet Text"]; [twittertext release]를 제거하십시오; 라인, 여전히 해고합니까? 분명히 유일한 차이점은 ARC를 사용하고 있다는 것입니다 ... – cfischer

1

내 응용 프로그램 (장애인 ARC)에 다음 코드를 사용했다

NSString *text = @"Go away, modal view controller!"; 

[SHKTwitter shareText:text]; 

나는 잘 일축 확인할 수 있습니다. Sharekit ARC 호환을 시도 할 때 SHKTwitterForm.m에서 일부 코드가 변경되었을 수 있습니다. 어떤 결과가 귀하의 버그

+0

아니요, ARC없이 모든 ShareKit 파일을 컴파일했습니다. -fno-objc-arc – cfischer

+0

방금 ​​원래 질문을 다시 읽고 혼란을 느꼈습니다. 어떻게 생각하세요? Xcode 4.3을 사용하고 있습니까? 또한 어떤 시뮬레이터 버전에서 버그가 발생합니까? 실제 장치에서도 테스트 해 보셨습니까? – Louis

2
if (isDismissingView) 
    return; 

if (currentView != nil) 
{ 
    // Dismiss the modal view 
    if ([currentView parentViewController] != nil) 
    { 
     self.isDismissingView = YES; 
     [[currentView parentViewController] dismissModalViewControllerAnimated:animated]; 
    } 

    else { 
     //## ADD BELOW ## 
     self.isDismissingView = YES; 
     [currentView dismissModalViewControllerAnimated:animated]; 
     self.currentView = nil; 

    } 
} 
else { 
    [[self getTopViewController].navigationController popViewControllerAnimated:YES]; 
} 
아이폰 OS 5. 나를 위해 작동