有没有办法解决没有收到 NavBarDelegate 回调的问题?我尝试在一个测试项目中做:
[self.navigationController.navigationBar setDelegate:self];
在 viewDidLoad 中,我确实收到了以下回调:
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPushItem:(UINavigationItem *)item {
NSLog(@"%s", __FUNCTION__);
return YES;
}
- (void)navigationBar:(UINavigationBar *)navigationBar didPushItem:(UINavigationItem *)item {
NSLog(@"%s", __FUNCTION__);
}
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item {
NSLog(@"%s", __FUNCTION__);
return YES;
}
- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item {
NSLog(@"%s", __FUNCTION__);
}
我确实在接口中检查了我的 ViewController 是否符合此协议。
在 viewWillAppear: 中,我检查我的类是否符合协议:
if ([self conformsToProtocol:@protocol(UINavigationBarDelegate)]) {
NSLog(@"yes I conform");
}
而且我确实收到了 NSLog 消息,说我的课程符合要求,但我没有收到回调。由于它在测试项目中有效,但在这里不起作用,我正在尝试找出解决此问题的其他方法。有什么想法吗?谢谢。