0

我试图找出哪个 UIViewController 当前位于 UINavigationController 堆栈的顶部,我将这些值传递给我的 NSArray viewCtrls,当我记录顶部 UIViewController 时,我得到了这个。

<SearchViewController: 0x1457c550>

所以这是我试图用来确定哪个 UIViewController 位于 UINavigationStack 顶部的代码

NSArray *viewCtrls = navcontroller.viewControllers;
UIViewController *vCtrl = [viewCtrls objectAtIndex:[viewCtrls count]-1];

NSLog(@"%@", vCtrl);

if ([vCtrl isKindOfClass:SearchViewController]) {
    NSLog(@"yes");
} else {
    NSLog(@"no");
}

我如何在 if 语句的第一行收到此错误。

Use of undeclared identifier 'SearchViewController'

我想知道我应该如何声明标识符?这是从 NSObjectClass 调用的,所以我需要从调用此 NSObjec 类的 UIViewController 传递 self 的参数?或者有更好的方法吗?

任何帮助,将不胜感激。

4

2 回答 2

2

你要[vCtrl isKindOfClass:[SearchViewController class]]

于 2013-10-17T00:25:32.913 回答
1

Mike 的解决方案应该可以正常工作。显然,它无法真正理解 SearchViewController 是什么。你能检查一下提前声明吗

@class SearchViewController

对于上面代码编写的类的头文件中的SearchViewController类,然后在上面代码编写的类的源文件中导入SearchViewController.h文件。

#import "SearchViewController.h"
于 2013-10-17T01:48:30.483 回答