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メッセージが表示されますが、コールバックが表示されません。テストプロジェクトでは機能しますが、ここでは機能しないため、これをトラブルシューティングする他の方法を見つけようとしています。何かご意見は?ありがとう。