我目前正在编写一个iPhone应用程序,该应用程序使用具有超过5个选项卡栏项的UITabBarController。因此,会自动生成“更多”标签(例如在YouTube应用程序中)。
我发现相应的视图控制器类是UIMoreListController,但是我没有任何相应的.h文件。因此,我的代码如下所示:

@class UIMoreListController; // can't use #import since .h file is missing

@implementation SomeUINavigationControllerDelegate

- (void)navigationController:(UINavigationController *)navigationController
        willShowViewController:(UIViewController *)viewController
        animated:(BOOL)animated
{
     if ([viewController isKindOfClass:[UIMoreListController class]])
         ... // do something if "more" view is active

这就像一个魅力。但是,编译器一直在给我

警告:接收方'UIMoreListController'是一个转发类,相应的@interface可能不存在

是否有一种巧妙的方法来消除此警告(仅此特定警告)?同样,由于没有可用的.h文件,因此我无法使用#import

最佳答案

如果您只是尝试检查UIMoreListController类,则可以使用objc-api访问该类变量。

if ([viewController isKindOfClass:NSClassFromString(@"UIMoreListController")])

然后,您不需要#import@class声明。

09-08 10:28