I have a modal view controller, whom I'll call Bob. Bob is presented by Amy, who is Bob's delegate. When the user is done using Bob, Bob calls a method that is defined in Bob's delegate protocol. Amy responds by dismissing Bob. There is a piece of code that is supposed to be run after Amy's parent view loads. It runs well when Amy is loaded into the navigation controller's stack, but not when Bob calls the aforementioned delegate method. If the code is in viewDidAppear, Bob won't even go away. I did not knowingly cause this behavior, and I am not using any relevant third-party code.