2012-08-15 110 views
1

這個問題有點特殊,但我仍然會問這個問題。所以我從這裏正確地遵循了ShareKit 2.0安裝的所有說明:https://github.com/ShareKit/ShareKit/wiki/Installing-sharekitShareKit共享器只顯示一次?

所有的東西都編譯得很好。我添加的唯一文件是DefaultSHKConfigurator.m文件和我的共享者信息。

因此,例如,我稱之爲SHKMail這樣的:

SHKItem *item = [SHKItem image:image title:@"Hey"]; 
     [item setText:myText]; 
     [item setURL:appURL]; 
     if ([SHKMail canShare]) { 
      [SHKMail shareItem:item]; 
     } 

它加載罰款沒有任何問題,並關閉精美的第一次。第二次執行此代碼時,設備上沒有任何反應。這個問題不限於SHKMail,它發生的將是全部的共享者。我已經將這個問題縮小到了SHK.m班。

showViewController方法,該代碼被稱爲第二陣子:

// If a view is already being shown, hide it, and then try again 
    if (currentView != nil) 
    { 
     self.pendingView = vc; 
     [[currentView parentViewController] dismissModalViewControllerAnimated:YES]; 
     return; 
    } 

該代碼應該不會被調用我第二次執行第一代碼片段我張貼。無論如何,這可能是什麼原因造成的?我還有什麼可以嘗試調試?有任何想法嗎?

我認爲任何人誰幫助我完全解決這個問題,將得到50點賞金

感謝任何試圖回答這個問題的人! :)

回答

0

這是在黑暗中拍攝的,但我已經把我的頭髮拉出共享套件的問題之前,所以我知道什麼是有幫助的。

看來在第一次解除視圖後,currentView從不會被設置爲零。

我看到他們已經更新了一些方法SHK.m

- (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]; 
     } 
     // for iOS5 
     else if([currentView respondsToSelector:@selector(presentingViewController)] && 
       [currentView presentingViewController]) 
     { 
      self.isDismissingView = YES;    
      [[currentView presentingViewController] dismissViewControllerAnimated:animated completion:^{                   
       [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
        [[NSNotificationCenter defaultCenter] postNotificationName:SHKHideCurrentViewFinishedNotification object:nil]; 

        //THIS IS NEW 
        self.currentView = nil; 
       }]; 
      }]; 
     } 

     else 
      self.currentView = nil; 
    } 
} 

我只在強制self.currentView = nil;呼叫加入與iOS 5.嘗試改變這種工作的觀點已經在iOS5中被解僱後。

+0

感謝您的嘗試,但不幸的是,這會導致應用程序在第二次解散共享者時崩潰。任何其他想法? – 2012-08-15 22:52:58

+0

這也可能與K S的答案有關,但是你是否在模擬器上遇到這個問題? – random 2012-08-16 00:34:27

+0

由於我在許多地方只使用一些設備代碼,所以無法在模擬器上測試。 – 2012-08-16 00:50:47

0

我也在使用ShareKit 2.0進行Facebook分享(即[SHKFacebook shareItem:item]),並沒有遇到您目前遇到的問題。

我已經在iPhone模擬器4.3和5.1中測試了您的代碼(即[SHKMail shareItem:item]),沒有任何問題。

這可能是您的環境設置不正確或代碼不是最新的。

+0

我的代碼絕對是最新的。究竟在環境中究竟會造成這個問題呢? – 2012-08-16 00:17:29

+0

嗨iBrad,我不知道是什麼原因導致你的問題。你可以簡化你的應用程序(或創建一個測試應用程序),看看問題是否可重現。 – 2012-08-16 23:10:38

+0

我可以製作一個測試應用程序。給我幾天,我會在這裏發佈鏈接。你是否願意通過該項目,看看有什麼不對?我會給你一個50點的獎勵,一個投票,我會接受你的答案,因爲你的新網站,但只有當你幫我解決這個問題充分:) – 2012-08-17 03:45:57