我有一个子视图,当双击子视图的父视图控制器上的协议方法被调用时......
- (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方法中,以将其与子视图隔离。当我点击此按钮时,模态视图工作正常。
谁能告诉我我做错了什么?为什么从父视图上的按钮执行时,而不是从子视图调用的协议方法执行它。
到目前为止,我试图解决这个问题......
我目前正在设置它,以便协议方法调用一个呈现不同视图的已知工作方法。在调用presentModalViewController之前,它会弹出一个每次都有效的UIAlertView,但是当通过协议方法调用时,模态视图拒绝显示。
我很难过。也许它与我从UIView类而不是UIViewController类调用协议方法的事实有关。也许我需要为subView创建一个UIViewController?
谢谢,
约翰
答案 0 :(得分:0)
在另一个论坛的帮助下,我解决了这个问题。我在父UIView中创建了drawRect的子视图。我将子视图的创建移动到viewController,并将它们作为子视图添加到父scrollView。现在一切都像冠军一样。
约翰