14

我已经使用以下代码在 self 对象上展示了一个包含 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];

但是在第二次调用上述代码之前,我想知道当前出现在屏幕上的视图控制器是否是drawController。我正在使用以下代码

    if (drawController && [drawController isBeingPresented])

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

谢谢内哈梅塔

4

3 回答 3

22

使用navigationController's visibleViewController propertyisKindOfClass method了解最新信息top

if([self.navigationController.visibleViewController isKindOfClass:[yourcontroller class]])
   //exists
else
   //not exists
于 2012-10-16T12:34:43.090 回答
6

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

if ([self.presentedViewController isKindOfClass:[UINavigationController class]] &&
   ((UINavigationController *)self.presentedViewController).topViewController == drawController) {
   …
于 2012-10-16T12:31:41.140 回答
3

检查UINavigationControllersvisibleViewController方法。

有关文档,请参阅UINavigationController

于 2012-10-16T12:32:15.073 回答