Причиной моей проблемы было то, что в iOS 5
[picker.parentViewController dismissModalViewControllerAnimated:YES]
больше не работает - parentViewController
равно нулю. Заблуждение приводит к тому, что представление выбора «завершается», но не закрывается, и оно просто остается неактивным.
Вместо этого вы можете использовать:
[picker.presentingViewController dismissModalViewControllerAnimated:YES]
Но это не работает в iOS 4, так как нет сообщения presentingViewController
.
Вы можете либо написать категорию, которая автоматически выберет нужную, либо сохранить ссылку на контроллер представления, который представил ее вручную. Например, в моем случае делегат был также контроллером представления, который представил его, поэтому я смог сделать
[self dismissModalViewControllerAnimated:YES]
В моем селекторе.