iPhone flip right button (like iTunes)
core-animation, iphone, rightbarbuttonitem
Solution
There's some discussion here, but the solution is not so elegant.
First of all, since `UIBarButtonItem` is not a descendant of `UIView`, you probably cannot use UIKit animations directly on the `UIBarButtonItem`. However, you can try setting a `customView` and animating that. You can use the same animation block.
Problem
I'm trying to flip between two views. That's easy, the code is below, but I also want to simultaneously flip the button used to perform the flip. You can see this behavior in the iPod application when you're playing a track; tapping the flip button flips between the cover art and the track listing, but it flips the button at the same time. This is a page on the navigation controller, and the button I want to flip is the `rightBarButtonItem`. Here's the code I have so far. This flips the view, but not the rightBarButton. ``` [UIView setAnimationBeginsFromCurrentState: YES]; [UIView setAnimationDuration: 0.5f]; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; showingBackside = !showingBackside; if (showingBackside) { [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView: self.view cache: YES]; [self.view addSubview: backside.view]; [frontside.view removeFromSuperview]; } else { [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView: self.view cache: YES]; [self.view addSubview: frontside.view]; [backside.view removeFromSuperview]; } // flip image, too NSString *newImage = showingBackside ? @"backside.png" : @"frontside.png"; [(self.navigationItem.rightBarButtonItem) setImage: [UIImage imageNamed: newImage]]; [UIView commitAnimations]; ``` (The image flipping code here may not compile; I added it after to try to explain what I was trying to do.) Where I'm running into trouble is I want to change the rightmost button in the navigation controller so it flips simultaneously. How do I do this? What view do I animate, and do I do it as part of the same animation block or as a separate one? Any tips would be appreciated, I definitely don't have a good handle on animation yet.