Using XCode 4.4 and Mountain Lion,
I have a UIImageView, and on that view, I have a UIProgressView and a UIButton. When the app starts, the progress view and button are both hidden, as set in the storyboard. I then try to unhide them, first the progress bar when I’m doing something, and then the button when I’m done. I have called, for both items,
[self.view bringSubviewToFront:saveToCameraRoll];
to try to put them in front of the UIView.
Problem is, when I programmatically try to unhide them, it doesn’t work. I can call:
progressBar.hidden = NO;
[self.view bringSubviewToFront:progressBar];
And that does nothing.
So then I tried to set everything as visibile in the storyboard and then programmatically set everything to be invisible once the controller loads. No deal; now my calls to hidden = YES seem to be ignored.
I then removed all actual programming, so that hitting buttons should just cause the button and progress bar to appear, reasoning that maybe the main thread was getting starved and couldn’t update.
How can I force elements to pay attention to being hidden?
EDIT: I’ve now also tried programmatically modifying the alpha from 1 to 0. No change. It’s like everything I’m doing is getting ignored. I made these items via the ctrl-drag method into the @interface section of the .m file; maybe I don’t have some more delegates or interfaces or whatever hooked up?
Is it possible the outlets are nil because they aren’t hooked up in IB? If so, no amount of manipulation will have an effect.
Try
NSLog(@"%@", saveToCameraRoll);Is it null? Fix by reconnecting outlets in IB. If that works, then .hidden = NO will work and you can get rid of any code you added to manipulate the view hierarchy.