2012-03-27 24 views
0

two actionsheet buttonsone modalviewcontrollermainviewcontrollerに適用しました。今2つのactionsheetボタン用とmodalviewcontrollerのために、私はmainviewcontrollerでこれらの3つのメソッドを追加した場合、私は赤い警告メッセージduplicate declaration of method dismissviewdidfinishを取得し、各メソッド宣言の重複宣言

-(void)dismissViewDidFinish:(ModalViewController *)controller 
{ 

[self dismissModalViewControllerAnimated:YES]; 

} 

-(void)dismissViewDidFinish:(Devanagari *)controller1; 
{ 

[self dismissViewControllerAnimated:completion]; 

} 

-(void)dismissViewDidFinish:(English *)controller2; 
{ 

[self dismissViewControllerAnimated:YES]; 

} 

原因dismissviewdidfinish method複数を持つことができます。

どのようにこのような状況を解決するためのアイデア。

答えて

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ている確認することができます。この3つのviewcontrollerを閉じるためにdoneボタンをクリックすると(void)dismissViewDidFinish:(UIViewController *)viewController – user1120133

+0

実際にはプロトコルステートメントですべて同じ3つを使用しています - (void)dismissViewDidFinish :(UIViewController *)あなたが提案したviewController。だから私はそれも大丈夫だろうと思う – user1120133

+0

これにあなたのロジックをベースにする必要がある場合は '[viewController isMemberOfClass:[English class]]'を実行して、どのクラスであるかを調べることができます。 – rosslebeau