ShareKit模态视图控制器不会消失

时间:2011-10-30 02:42:44

标签: objective-c cocoa-touch uiviewcontroller modalviewcontroller sharekit

我在Xcode 4.2(iOS SDK 5)上使用ShareKit 0.2.1在Twitter上分享文本。它共享很好,但模式视图控制器在单击取消按钮成功共享后不会消失(见下文):

enter image description here

这是我的代码:

-(IBAction)shareOnTwitter:(id)sender{


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

    [SHKTwitter shareText:text];

}

我做错了什么?

4 个答案:

答案 0 :(得分:30)

我和你有同样的问题。这是一个iOS 5问题。这是因为ShareKit正在使用名为UIViewController的{​​{1}}上的方法,根据Apple文档,您无法再在iOS 5中使用此方法。相反,您必须使用parentViewController

所以要在ShareKit代码中修复它,进入SHK.m,找到带有签名presentingViewController的方法,并将其替换为:

(void)hideCurrentViewControllerAnimated:(BOOL)animated

这适用于iOS 5。

答案 1 :(得分: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];
}

答案 2 :(得分: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]; 

答案 3 :(得分:1)

我在我的应用中使用了以下代码(禁用ARC)

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

[SHKTwitter shareText:text];

我可以确认它解散罚款。 在尝试使Sharekit ARC兼容时,您可能在SHKTwitterForm.m中更改了一些代码。这导致了你的错误