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

cfi*_*her 15 cocoa-touch objective-c uiviewcontroller modalviewcontroller sharekit

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

在此输入图像描述

这是我的代码:

-(IBAction)shareOnTwitter:(id)sender{


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

    [SHKTwitter shareText:text];

}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Mik*_* A. 30

我和你有同样的问题.这是一个iOS 5问题.这是因为ShareKit正在使用UIViewController被调用的方法parentViewController,根据Apple文档,您不能再在iOS 5中使用它.相反,您必须使用presentingViewController.

所以要在ShareKit代码中修复它,进入SHK.m,找到带签名的方法(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;
    }
}
Run Code Online (Sandbox Code Playgroud)

这适用于iOS 5.