ios 如何在导航栈上检查当前UIViewController

gcmastyq  于 2022-12-15  发布在  iOS
关注(0)|答案(2)|浏览(119)

我试图找出哪个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参数?或者有更好的方法吗?

wooyq4lh

wooyq4lh1#

你想要[vCtrl isKindOfClass:[SearchViewController class]]

4nkexdtk

4nkexdtk2#

Mike的解决方案应该工作正常。显然,它不能理解SearchViewController是什么,真的。你能检查一下提出一个转发声明吗

@class SearchViewController

对于编写上述代码的类的头文件中的SearchViewController类,再导入编写上述代码的类的源文件中的SearchViewController. h文件。

#import "SearchViewController.h"

相关问题