我有一个函数,在UpdateViewController中,由代理,MyDownloadController,将关闭模式视图(这是UpdateViewController)调用。iPhone:modalview不会关闭
-(void)errorDownloading {
self.downloadController.delegate = nil;
[downloadController release];
[self dismissModalViewControllerAnimated:YES];
}
我已经试过这样做,没有弄乱委托指针,它仍然不关闭视图。
的委托调用内MyDownloadController这样的方法:
-(void)connectionError {
if([delegate respondsToSelector:@selector(errorDownloading)]){
[delegate errorDownloading];
}
}
而这个功能是由一个不同的委托(MyConnectionController)调用。
有这么多代表有什么不妥吗?并会指针错误或与他们的东西影响模态视图能够关闭?如果是这样,那么/为什么?
我有这样的结构,各代表团:
UpdateViewController (the actual modal view I am trying to close)
|- MyDownloadController (the controller that abstracts the process being done)
|- MyConnectionController (a helper class I wrote to interact with NSURLConnection)
|- NSURLConnection
什么是诊断这个问题的最好方法是什么?
如果您正在尝试抽象各个部分,除代表之外,更好的方法是什么? 并使用self.parentViewController不起作用。任何其他想法? – RyanJM 2010-07-26 21:00:03
对不起,对于非常迟的回复,但希望这可以帮助到最后的人。无论如何,谢谢你的回答是正确的。有不同的方式来抽象这种特定的行为,但我会建议反对它。首选的方式是委派,因为有直接的参考。第二个优选方式是通过响应者链。视图的视图控制器是下一个响应者。参见[UIApp sendAction:@selector(myEvent :) to:nil from:self forEvent:[UIEvent new]];在链中侦听myEvent的视图控制器可以响应。请参阅文档:http://bit.ly/10bBa4W – gauravk92 2014-10-20 01:23:15