2011-11-10 9 views
3

私が間違っていない場合は、モーダルビューはモーダルビューからではなく、親ビューから解除する必要があります。モーダルビューを解除する

私の現在のプロジェクトでは、2つのモーダルビューがあります。最初のものでは、データを親ビューに渡します。データが親ビューに渡されると、終了が実行されます。

さて、私は親ビューにデータを渡すことはありません別のモーダルビューを持っているので、私は1つの自己のdismissModalViewそれ以外

をやっ以外を却下する方法がわからない、のための任意の他の提案このトピックの良い練習ですか?

ありがとうございます!

UPDATE: - 私は取得の答えから

、私は私が(ところで、珍しいことではない)私自身は非常に明確にhaven't参照してください。

私はmodalViewControllerを自己解読する方法を知っています。それは問題ありません。 また、プロトコルデリゲートメソッドを使用して、データが渡されたときに親ビューからmodalViewControllerを閉じる方法も知っています。

私の質問は、データが渡されないときに親ビューからmodalViewControllerを解除する方法です。

もう一度おねがいします!

答えて

12

あなたはmodalViewから呼び出すことができます。

[self dismissModalViewControllerAnimated:YES]; 

しかし...あなたはモーダルビューが何かかどうかを「返す」ものは何でも一定のコーディングパターンを持つようにしたい場合は、私はあなたがあなたの意見を却下することをお勧め親(それを呼び出すもの、却下するもの)からのものです。しかし、あなたは両方を行うことができます。

あなたの質問にお答えしますか?

+0

だから私は何も渡すメソッドが動作しますか? – Marcal

+0

@Marcal:うん、データが渡されていて、ビューを却下しても関係はありません...私はあなたの目的を理解していません。 – Oliver

+0

さて、データを親ビューに渡す前に、protocol-delegateメソッドを使用しました。親ビューにデータが得られたら、それはモーダルビューを閉じた。基本的に私の質問は、たとえデータを渡す必要がない場合でもこのメソッドを使用できるかどうかです。 – Marcal

5

あなたがそれを呼び出すためにデリゲートを使用することができますselfからそれを呼び出すにしたくない場合は、

[self dismissModalViewControllerAnimated:YES]; 
0

を使用して(すなわちない親からの)直接モーダルビューを閉じることができます。

したがって、viewControllerFinishedというメソッドがあります。つまり、ビューコントローラがデリゲートで呼び出すメソッドがあります。

このように、モーダルビューコントローラを起動するにしても、それを却下します。これは、View Controllerから情報を戻す必要がある場合に役立ちます。

4
IOS6について

以降

[自己dismissViewControllerAnimated:YES完了:なし]を使用します。

6

は取る

[self dismissModalViewControllerAnimated:YES]; 

が以降のiOS 6から廃止されていることに注意してください。むしろ使用する

[self dismissViewControllerAnimated:YES completion:nil]; 
0

スウィフトバージョン...

self.dismissViewControllerAnimated(true, completion:nil) 
関連する問題