我用下面的代码介绍了一个在UI对象上包含UIViewController的UINavigationController

  drawController = [[DrawImageViewController alloc] initWithNibName:nil bundle:nil];
[drawController setDrawControllerDelegateObject:self];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:drawController];
[self presentModalViewController:nav animated:YES];
[nav release];

但是当第二次调用上面的代码之前,我想知道当前出现在屏幕上的 View Controller 是否是drawController。我正在使用以下代码
    if (drawController && [drawController isBeingPresented])

但是它不适用于我,它也适用于iOS 5.0,所以我被困在这里。请帮助我知道我应该如何知道当前出现在屏幕上的UIViewController是哪个类的,并且drawContoller是否仍显示在屏幕上?如果有我的错字,很抱歉。任何帮助将不胜感激。

感谢Neha Mehta

最佳答案

不是最漂亮的代码,但这应该可以工作:

if ([self.presentedViewController isKindOfClass:[UINavigationController class]] &&
   ((UINavigationController *)self.presentedViewController).topViewController == drawController) {
   …

10-05 20:24