у меня есть табличное представление в корневом классе представления, я хочу отобразить модальное представление, когда пользователь щелкает ячейку - PullRequest
0 голосов
/ 04 октября 2011

Моя таблица просматривает источник данных и делегат установлен на другой класс (tableModule). Теперь я написал следующий код, чтобы показать модальное представление:

    NewRule *newRuleModalView = [[NewRule alloc] init]; 
newRuleModalView.modalPresentationStyle = UIModalPresentationFullScreen;
newRuleModalView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:newRuleModalView animated:YES];
newRuleModalView.view.superview.frame = CGRectMake(0, 0, 750, 1004);
[newRuleModalView release];

Этот код не работает для меня. Затем я устанавливаю источник данных tableview и делегирую себя. Тогда тот же код работал для меня. Как я могу использовать его в первой ситуации? Пожалуйста, помогите мне, я новичок в этой области.

1 Ответ

0 голосов
/ 04 октября 2011

Если ваш класс tableModule не является контроллером представления, и (я думаю) не является видимым в данный момент контроллером представления, то вы не можете вызвать presentModalViewController: для него. Если вы поместили этот код в didSelectRowAtIndexPath: в вашем контроллере представления, и контроллер представления не является делегатом табличного представления, он никогда не будет вызван.

Если вы хотите сохранить отдельный объект в качестве делегата вашего табличного представления и источника данных, делегат вашего табличного представления (tableModule) должен иметь указатель на ваш контроллер представления, чтобы он мог сказать контроллеру представления представить модальное Посмотреть.

Не могли бы вы иметь источник данных как tableModule и делегат в качестве контроллера представления, или вам нужна информация из tableModule для реализации методов делегирования?

Из ваших комментариев вам понадобится следующее:

  • Создайте свойство на tableModule вашего rootViewController типа
  • При создании tableModule установите tableModule.rootViewController = self
  • В выбранном вами методе строки вместо [self presentModal... сделайте [self.rootViewController presentModal...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...