Поскольку вы отображаете представление дважды.
В первый раз, добавив представление в качестве подпредставления текущего представления:
[self.view addSubview:closeVC.view];
Во второй раз, нажав контроллер представления сверхуконтроллер текущего представления:
[self presentModalViewController:closeVC animated:NO];
Я не уверен, почему в iOS4 viewWillAppear
вызывался только один раз, потому что iOS5 правильно вызывать его дважды, учитывая, что вы отображаете представление дважды, как описано выше.
Просто удалите одну из строк, и все будет хорошо (я бы рекомендовал удалить addSubview
и сохранить presentModalViewController
).