The situation is pretty simple: a view controller at the top of our
navigation controller's stack presents a modal view controller.

When the user's done with the modal view, he makes one of several choices
that call the modal controller's delegate and cause the delegate to dismiss
the modal view.

The problem occurs if a memory warning comes through while the modal view
is up.  In that case, the view behind the modal view gets blown away.
 Normally, this isn't a problem; it's loaded from a XIB and designed to
handle this situation anyway.  And indeed, in two of the three ways that
the user can dismiss the modal view, it works just fine.

The third dismissal method leaves us with a blank white screen and a
disabled app after the modal view is dismissed.  There is only one
difference in that case: The modal controller has presented a UIActionSheet
to confirm the user's choice.  If I add an action sheet to the other
methods, they too cause the white screen.  If I replace the UIActionSheet
with a UIAlertView, the app works fine and the underlying view is redrawn
as expected.

Can anyone hazard a guess here?  I'm handling the UIActionSheet
with didDismissWithButtonIndex (which superseded clickedButtonWithIndex).
 I tried setting the ActionSheet's delegate to nil in this method, but no
dice.  I'm raising the ActionSheet with showFromBarButtonItem, but I also
tried showInView:self.view.

Through logging, I know that the view behind the modal view was reloaded
and the XIB name was set correctly (viewDidLoad was called).  But its
viewWillAppear method was never called in the case where an ActionSheet was
used by the overlying modal controller.  When the ActionSheet isn't used by
the modal controller, the underlying controller's viewWillAppear IS called
and everything works fine.

This was a pretty huge problem for our app, and before I file a bug I'd
like to solicit insight on the issue.

Thanks!

Gavin
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to