Переключение взглядов через UIActionSheet - PullRequest
0 голосов
/ 14 января 2012

У меня есть приложение со стандартным UIView, которое содержит панель инструментов.Я могу нажать кнопку на панели инструментов, чтобы открыть таблицу UIActionSheet, и могу отображать там мой текст без проблем.То, что я хотел бы сделать, это чтобы элементы листа действий отображали XIB, отличный от моего проекта.У меня все настроено как в соответствующих файлах заголовка и реализации, так и в XIB, но мне нужно связать действие касания элемента листа действий с отображением второго представления.

Это то, что у меня такfar:

- (void)actionSheet:(UIActionSheet *)sheet willDissmissWithButtonIndex:(NSInteger)buttonIndex {

    if (buttonIndex != [sheet cancelButtonIndex]) {

        if (buttonIndex == 0) {

            ABC *secondview = [[ABC alloc] initWithNibName:nil bundle:nil];
            [self presentModalViewController:secondview animated:YES];
        }

        if (buttonIndex == 1) {

            DEF *secondview = [[DEF alloc] initWithNibName:nil bundle:nil];
            [self presentModalViewController:secondview animated:YES];

        }

        if (buttonIndex == 2) {

            GHI *secondview = [[GHI alloc] initWithNibName:nil bundle:nil];
            [self presentModalViewController:secondview animated:YES];   

        }

    [self dismissModalViewControllerAnimated:YES];

    };

}

Это открывает мой лист действий и отображает всю правильную информацию, но нажатие «ABC», «DEF» или «GHI» только закрывает лист действий, как если бы я нажал «Отмена».кнопка.Как мне установить его, нажав «ABC», «DEF» или «GHI», чтобы открыть другой XIB в моем проекте?

1 Ответ

0 голосов
/ 14 января 2012

Начните с исправления названия вашего метода: вы ошиблись словом «отклонить».Если это ваш реальный код, метод делегата в настоящее время не вызывается.

Последующие действия:

ОК, я проверил ваш код (с или без, казалось бы, ненужного dismissModalViewController ...) и это работает для меня.

Что заставляет меня думать, что с вашей большой установкой что-то не так.Вы установили точку останова и убедились, что ваш код на самом деле запускается?

Если он не запускается (это мое подозрение), проверьте, не удалось ли передать соответствующее значение для делегата: когда вы настраиваливаш UIActionSheet.(В частности, возможно, вы передали nil в качестве делегата? Это могло бы вызвать молчаливый сбой описанного вами типа.)

Получаете ли вы какие-либо предупреждения от компилятора / Clang?

...