2012-03-27 56 views
0

在應用程序中有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

對於多於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