方法的重复声明dismissviewdidfinish
问题描述:
在应用程序中有two actionsheet buttons
和one modalviewcontroller
在mainviewcontroller
。现在两个actionsheet
按钮和modalviewcontroller
,我可以为每个方法的重复声明dismissviewdidfinish
-(void)dismissViewDidFinish:(ModalViewController *)controller
{
[self dismissModalViewControllerAnimated:YES];
}
-(void)dismissViewDidFinish:(Devanagari *)controller1;
{
[self dismissViewControllerAnimated:completion];
}
-(void)dismissViewDidFinish:(English *)controller2;
{
[self dismissViewControllerAnimated:YES];
}
导致多个dismissviewdidfinish method
如果我加上mainviewcontroller这三种方法,我收到红色的警告信息duplicate declaration of method dismissviewdidfinish
。
任何想法如何解决这种情况。
答
对于多于1个方法,您不能有相同的名称。使用单一的dismissViewDidFinish:(UIViewController *)viewController
方法,然后检查看哪个viewController完成:
- (void)dismissViewDidFinish:(UIViewController *)viewController {
//check to see what kind of class viewController is
//or use tags by setting the viewcontroller.view.tag when creating it
}
现在它工作正常,但我怎么检查哪个viewcontroller完成。因为当我点击完成按钮来解雇这三个视图控制器它可以正常工作 - (void)dismissViewDidFinish:(UIViewController *)viewController – user1120133 2012-03-27 18:52:46
实际上在协议语句中我已经对所有三个使用相同 - (void)dismissViewDidFinish :(UIViewController *)viewController,如你所建议的。所以我认为这也可以。 – user1120133 2012-03-27 18:54:57
如果你需要在你的逻辑基础上,你可以通过'[viewController isMemberOfClass:[English class]]来检查它是什么类。 – rosslebeau 2012-03-27 18:58:05