2012-08-15 65 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