2016-10-23 8 views
0

SheetからViewControllerにデータを戻したいとします。
デリゲートで試してみましたが、シート(self.dismiss(self))を閉じると、背後のViewControllerがリフレッシュされないため、動作しません。あなたがでdismissViewController前にこのステートメントを追加シートからViewControllerにデータを戻します。

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.funcToBeExecuted(_:)), name:String, object: nil) 

のViewControllerクラスのメソッドpresentViewControllerを呼び出す前に、NSNotificationCenter

は、このステートメントを追加として知ってシングルトンクラスを使用する必要があります

enter image description here

答えて

2

シートクラス

NSNotificationCenter.defaultCenter().postNotificationName(String, object: AnyObject?, userInfo: [NSObject : AnyObject]?)) 

これは技術的にはこれがどのように機能するかです。 #selectorメソッドを実行するときに、アプリケーションによってオブザーバがポストされるのを待つように設定します。アプリケーションがpostNotification文を実行すると、postNotificationと同じNotificationNameを持つメモリ内のすべてのオブザーバがトリガされ、割り当てられた#セレクタが実装されます。

userInfoは、ある場所から別の場所に、または同じ名前の複数のオブザーバにデータを渡すのに役立つパラメータのpostNotificationNameにあります。したがって、NSNotificationセレクタによって実行されるメソッドでは、以下に述べるようにuserInfoにアクセスできます。

func funcToBeExecuted(notification: NSNotification) 
{ 
    let receivedData = notification.userInfo 
} 

これはあなたのためのトリックを行う必要があります。

+0

恐ろしい!ありがとうございます – user3722523

+0

私の喜び。 –

関連する問題