このように userInfo 経由で渡すことができます
let userInfo = [ "inputData" : inputdata ]
NSNotificationCenter.defaultCenter().postNotificationName("navigateToProductDetail", object: nil, userInfo: userInfo)
そして、プロパティを持つNSNotification
オブジェクトからこれを取得できますuserInfo
func handleNotification(notification: NSNotification){
print(notification.userInfo)
print(notification.userInfo!["inputData"])
}
Row
が の場合struct
、最初にそれをクラス オブジェクトにラップする必要があります。その後、クラス オブジェクトをこの関数に渡すことができます。
ラッパー クラスを作成する
class Wrapper<T> {
var wrappedValue: T
init(theValue: T) {
wrappedValue = theValue
}
}
行をラップする
let wrappedInputData = Wrapper(theValue: inputdata)
let userInfo = [ "inputData" : wrappedInputData ]
NSNotificationCenter.defaultCenter().postNotificationName("navigateToProductDetail", object: nil, userInfo: userInfo)
inputData を取り戻す
func handleNotification(notification: NSNotification){
print(notification.userInfo)
if let info = notification.userInfo {
if let wrappedInputData = info["inputData"] {
let inputData : Row = (wrappedInputData as? Wrapper)!.wrappedValue
print(inputData)
}
}
}