i had to do this too. doing replace-the-image like Ken suggested, i couldn t find a good way to animate the rotation. it s best to be able to set the transform on the item s image, which you can t do to a simple UIBarButtonItem but you can with one built with a custom view:
in place of [[UIBarButtonItem alloc] initWithImage:image target:t action:a] :
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:t action:a forControlEvents:UIControlEventTouchUpInside];
[button setImage:image forState:UIControlStateNormal];
button.showsTouchWhenHighlighted = YES; // makes it highlight like normal
item = [[UIBarButtonItem alloc] initWithCustomView:button];
then you can do:
[UIView beginAnimations:@"rotate barbuttonitems" context:NULL];
item.customView.transform = CGAffineTransformMakeRotation(M_PI_2);
[UIView commitAnimations];