1

rootViewController 内で、自分自身を閉じたばかりのクラスを取得する方法を見つけようとしています。rootViewController に戻すためのいくつかのオプションがあり、それに応じて UI を少し変更するために、それが 1 つのインスタンスからのものかどうかを知る必要があります。

[self presentingViewController]セグエではなく解任のためにviewControllerが表示される場合を除いて、似たようなものを探しています。これを取得するための組み込みメソッドはありますか?

4

2 に答える 2

2

私は基本的に、この問題を解決するために、私が気になっていた 1 つのビュー コントローラーにアクセスしたかどうかを追跡しました。そうすれば、セグエの前に viewController にプロパティを設定するだけなので、UI の変更に対処する必要があることは、戻ったときにすでにわかっています。unwind segues へのコメントありがとうございます。私は間違いなく将来的にそれらをすぐに実装します!

于 2013-03-14T06:01:38.487 に答える
1

アップデート

この回答のすべてが古いニュースです.XCode 4.5以降、アンワインドセグエを使用して以前のviewControllerに戻り、そのコントローラーでアンワインドメソッドをトリガーできます。(@rdelmar に感謝)

Unwind セグエとは何ですか? また、どのように使用しますか?


古い方法/コードの方法..これには、特定のメソッドを実装するためのデリゲートが含まれるのが理想的です

クラスがそれ自体を却下すると、それをつかむことができなくなります。却下される前にそれを保持し、却下について知る必要があります。

これについて少し詳しく説明すると、通常、クラスは自分自身を却下するのではなく、クラスを所有するクラスが却下します。ここでの難読化メソッドは、UIViewController メソッドである可能性があります。

- (void) dismissViewControllerAnimated:

これはの省略形です

- (void) [[self presentingViewController] dismissViewControllerAnimated:completion:nil]

提示側の viewController には、presentedViewController破棄されたオブジェクトが破棄されるまで保持するプロパティがあります。presentingViewController が終了すると、そのpresentedViewControllerプロパティは nil にリセットされます。ただし、その参照を別の (強力な/保持された) プロパティにコピーするオプションが常にあり、イベントを閉じる前にそれを調べることができます。

リンゴを引用するには:

「レシーバーの提示されたView Controllerへの参照を保持したい場合は、[dismissViewControllerAnimated:completion:]を呼び出す前に、presentedViewControllerプロパティの値を取得してください。」

于 2013-02-26T23:53:53.793 に答える