4

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

4

1 に答える 1