Мои контроллеры модального представления отображаются за моим UIActionSheet, и мой UIActionSheet не удаляется. Я использую:
[self presentModalViewController:composeTweetView animated:YES];
Чтобы представить мой контроллер модального представления.
Мой лист действий отображается из tabBar:
[actionSheet showFromTabBar:self.parentViewController.tabBarController.tabBar];
Этот код работал на iOS 4.0.
if (buttonIndex == 0) {
if (self.isLoggedIn) {
[FlurryAPI logEvent:@"ST_REPLY_CLICKED"];
composeTweetView.isDirectMessage = FALSE;
[self presentModalViewController:composeTweetView animated:YES];
[composeTweetView release];
}
else {
LoginViewController* loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
loginView.delegate = self;
loginView.isPostingComment = TRUE;
self.isReply = TRUE;
[self presentModalViewController:loginView animated:YES];
[loginView release];
[composeTweetView release];
}
}
Резюме:
У меня есть UIViewController, содержащий UITabBar. Я представляю таблицу UIActionSheet, в которой есть несколько кнопок, представляющих контроллер модального представления. Когда представлен контроллер модального представления, UIActionSheet должен закрыться, а модальное представление должно быть наверху стека. Проблема в том, что UIActionSheet не закрывается, а модальное представление загружается за ним. Эта проблема не возникала до iOS 4.2.1.
Шаги по воспроизведению:
- Создайте проект TabBar, установив для вашего Base SDK значение iOS 4.2.1.
- Создайте кнопку или триггер для отображения таблицы UIActionSheet.
- Разрешите одной из кнопок в UIActionSheet представить контроллер модального представления, используя синтаксис:
[actionSheet showFromTabBar:self.parentViewController.tabBarController.tabBar];
Ожидаемые результаты:
1. The UIActionSheet should dismiss itself, and the modal view should appear in front
Фактические результаты:
1. The UIActionSheet does not get dismissed and the modal view appears behind it.
Регрессия:
This problem was not apparent prior to iOS 4.2.1
Примечания. Я пробовал другие способы отображения таблицы UIActionSheet, все из которых не работают должным образом:
//[actionSheet showInView:self.parentViewController.tabBarController.tabBar];
//[actionSheet showInView:[self.view window]];
//[actionSheet showInView:self.parentViewController.tabBarController.view];
//[actionSheet showInView:[UIApplication sharedApplication].keyWindow];