iOS6にアップデートすると、[(UIBarButtonItem) initWithCustomView:]メソッドで作成したボタンが正しく表示されないことがあります。
私の場合は、UIControlStateDisabled 状態で表示されるように指定した画像や文字が、button.enabled = NO を指定したにも関わらず表示されないという問題が発生しました。
具体的には、

×ダメなコード
UIImage* image = [UIImage imageNamed:@"image.jpg"];
UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 30.0)];
[button setBackgroundImage:image forState:UIControlStateDisabled];
button.enabled = NO;
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

と書いても、image.jpgは表示されませんでした。
これは、以前のバージョンのiOSでは、button が無効になっていれば UIControlStateDisabled 状態と判定されていたものが、iOS6からは barButtonItem が無効でなければそのように判定されないようになったことが原因です。
すなわち、

○正しいコード
UIImage* image = [UIImage imageNamed:@"image.jpg"];
UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 30.0)];
[button setBackgroundImage:image forState:UIControlStateDisabled];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button]
barButtonItem.enabled = NO;

と書けば、image.jpg は正しく表示されます。