I am setting the appearance of the segmented control via these statements in the app delegate.
[[UISegmentedControl appearance] setBackgroundImage:[[UIImage
This is a bug with UISegmentedControl, I think. You can work around it by setting the selected segment after a delay, to allow the control time to draw itself. You don't even have to use an actual delay, just something like:
[self performSelector:@selector(setPreferences) withObject:nil afterDelay:0.0];
Where setPreferences
updates the value of your segmented control.