方法的重复声明dismissviewdidfinish

问题描述:

在应用程序中有two actionsheet buttonsone modalviewcontrollermainviewcontroller。现在两个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 
} 
+0

现在它工作正常,但我怎么检查哪个viewcontroller完成。因为当我点击完成按钮来解雇这三个视图控制器它可以正常工作 - (void)dismissViewDidFinish:(UIViewController *)viewController – user1120133 2012-03-27 18:52:46

+0

实际上在协议语句中我已经对所有三个使用相同 - (void)dismissViewDidFinish :(UIViewController *)viewController,如你所建议的。所以我认为这也可以。 – user1120133 2012-03-27 18:54:57

+0

如果你需要在你的逻辑基础上,你可以通过'[viewController isMemberOfClass:[English class]]来检查它是什么类。 – rosslebeau 2012-03-27 18:58:05