如果这是重复的道歉。如果是这样,我感谢一个链接,并乐意删除我的问题。但是,我没有找到大量搜索结果之间的答案。这不是无法识别的选择器的常见情况。选择器是零。它被抛到这一行:
返回self.topViewController;
该行嵌入:
@implementation UINavigationController (JTRevealSidebarV2)
- (UIViewController *)selectedViewController {
return self.topViewController;
}
@end
如您所见,这是尝试扩展UINavigationController
。你可能已经注意到我的代码是基于这种情况:
https://github.com/mystcolor/JTRevealSidebarDemo
(根据第2版的演示,如果有人感兴趣的话)。
据我所知,我还没有对mystycolor的框架做任何改动。特别是UIViewController+JTRevealSidebarV2.h
和.m
。
到目前为止,我只对两个视图控制器中的一个进行了更改。包含内容的那些,而不是导航逻辑。
显然正在调用该方法。因此,该类别必须以某种正确的方式使用?而mystycolor在那里使用的所有内容,他都会调用一个记录良好的方法并返回其值。 因为它来自一个教程,这是外来代码,不要问我为什么不直接调用topViewController。当然,我会尝试下一步,但即使这有助于我仍然可以理解这里出了什么问题。
出于好奇,我确实将表达式改为return [self topViewController];
,但毫不奇怪,没有做出改变。
我很乐意提供更多代码,但不知道哪些代码可能对您有用。
答案 0 :(得分:0)
这不是问题为什么的答案,但我发现了我做错了什么。
我正在使用的视图控制器之一不包括
#import "UIViewController+JTRevealSidebarV2.h"
#import "UINavigationItem+JTRevealSidebarV2.h"
selectedViewController方法是针对两个类别实现的,但在调用时会执行不同的操作。这就是为什么mystycolor以这种方式实现它的问题的答案。
现在我添加了这些包括它工作正常。
但对我来说,错误信息仍然令人困惑。怎么可能是这个方法被调用了,当错误的原因似乎是该方法所属的扩展名并未包含在所有地方?