iOS ShareKit取消button不适用于Xcode 4.2

iOS的Sharekit与以前的Xcode工作,但将4.2不工作了,当我点击取消button它去这个例程

在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]; } else self.currentView = nil; } 

}

我踩了代码,它只是如果(isDissmissingView),只是返回。
所以,我手动插入代码

  [[currentView parentViewController] dismissModalViewControllerAnimated:animated]; 

到例程的顶部,但是这不起作用。

我还包括一些其他代码供参考

  - (void)showViewController:(UIViewController *)vc 

{

  if (rootViewController == nil) { // Try to find the root view controller programmically // Find the top window (that is not an alert view or other window) UIWindow *topWindow = [[UIApplication sharedApplication] keyWindow]; if (topWindow.windowLevel != UIWindowLevelNormal) { NSArray *windows = [[UIApplication sharedApplication] windows]; for(topWindow in windows) { if (topWindow.windowLevel == UIWindowLevelNormal) break; } } UIView *rootView = [[topWindow subviews] objectAtIndex:0]; id nextResponder = [rootView nextResponder]; if ([nextResponder isKindOfClass:[UIViewController class]]) self.rootViewController = nextResponder; else NSAssert(NO, @"ShareKit: Could not find a root view controller. You can assign one manually by calling [[SHK currentHelper] setRootViewController:YOURROOTVIEWCONTROLLER]."); } // Find the top most view controller being displayed (so we can add the modal view to it and not one that is hidden) UIViewController *topViewController = [self getTopViewController]; if (topViewController == nil) NSAssert(NO, @"ShareKit: There is no view controller to display from"); // If a view is already being shown, hide it, and then try again if (currentView != nil) { self.pendingView = vc; [[currentView parentViewController] dismissModalViewControllerAnimated:YES]; return; } // Wrap the view in a nav controller if not already if (![vc respondsToSelector:@selector(pushViewController:animated:)]) { UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease]; if ([nav respondsToSelector:@selector(modalPresentationStyle)]) nav.modalPresentationStyle = [SHK modalPresentationStyle]; if ([nav respondsToSelector:@selector(modalTransitionStyle)]) nav.modalTransitionStyle = [SHK modalTransitionStyle]; nav.navigationBar.barStyle = nav.toolbar.barStyle = [SHK barStyle]; [topViewController presentModalViewController:nav animated:YES]; self.currentView = nav; } // Show the nav controller else { if ([vc respondsToSelector:@selector(modalPresentationStyle)]) vc.modalPresentationStyle = [SHK modalPresentationStyle]; if ([vc respondsToSelector:@selector(modalTransitionStyle)]) vc.modalTransitionStyle = [SHK modalTransitionStyle]; [topViewController presentModalViewController:vc animated:YES]; [(UINavigationController *)vc navigationBar].barStyle = [(UINavigationController *)vc toolbar].barStyle = [SHK barStyle]; self.currentView = vc; } self.pendingView = nil; 

}

  • (void)hideCurrentViewController {[self hideCurrentViewControllerAnimated:YES]; }

这是一个已知的错误,显示在ios5上。 这已经被很久以前在ShareKit 2.0中修复了 。 如果您决定进行升级,请务必谨慎从字面上遵循新的安装wiki ,因为与原始的sharekit相比,许多事情已经发生了变化。

Interesting Posts