У меня есть подпредставление, что при двойном нажатии метод протокола на родительском контроллере представления подпредставления вызывается так ...
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *theTouch = [touches anyObject];
if (theTouch.tapCount == 1) {
} else if (theTouch.tapCount == 2) {
if ([self.delegate respondsToSelector:@selector(editEvent:)]) {
[self.delegate editEvent:dictionary];
}
}
}
Вот метод протокола с удаленным кодом, потребляющим словарь ...
- (void)editEvent:(NSDictionary){
EventEditViewController *eventEditViewController =
[[EventEditViewController alloc]
initWithNibName:@"EventEditViewController" bundle:nil];
eventEditViewController.delegate = self;
navigationController = [[UINavigationController alloc]
initWithRootViewController:eventEditViewController];
[self presentModalViewController:navigationController animated:YES];
[eventEditViewController release];
}
Метод протокола вызывается и запускается без ошибок, но модальное представление не отображается.
Я временно скопировал код метода протокола в метод IBAction, чтобы одна из кнопок представления родителя изолировала его от подпредставления. Когда я нажимаю на эту кнопку, модальный вид работает нормально.
Может кто-нибудь сказать мне, что я делаю не так? Почему это работает, когда выполняется из кнопки в родительском представлении, а не из метода протокола, вызванного из подпредставления.
Вот что я пытался обойти проблему ...
- Перезапущен xCode и симулятор
- Бег на устройстве (iTouch)
- Представление eventEditViewController вместо navigationController
- Использование Push вместо presentModal.
- задержка вызова к протоколу с executeSelector непосредственно к протоколу, к другому методу в подпредставлении, которое вызывает метод протокола, от метода протокола к другому методу с вызовами presentModal.
- Использование таймера.
У меня сейчас настроено так, что метод протокола вызывает известный метод работы, который представляет другое представление. Перед вызовом presentModalViewController он вызывает UIAlertView, который работает каждый раз, но модальное представление отказывается отображаться при вызове через метод протокола.
Я в тупике. Возможно, это как-то связано с тем, что я вызываю метод протокола из класса UIView вместо класса UIViewController. Может быть, мне нужно создать UIViewController для subView ??
Спасибо
John