2017-11-14 7 views
2
に別のクラスからオブジェクトを移動

同様の問題があった: オブジェクトはaddinAprelクラスのViewControllerがあり、またそれは、クラスSecondControllerありSwiftでこのオブジェクトをあるクラスから別のクラスに転送する必要があります。スウィフト

プログラム例:

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
print("Selected item is", current_arr[row]) 
active_textField.text = current_arr[row] 
let realm = try! Realm() 
let events = realm.objects(EventsDB.self) 

if ((text_field_months.text) == "Апрель") 
{ 
    if ((text_field_days.text) == "8") 
    { 
    let addinAprel=print(events.filter("dataMonth == %@ && dataDay ==%@",months_arr[3], days_arr[7])) 
     print("very good") 
     return addinAprel 
    } 
    if ((text_field_days.text) == "1") 
    { 
    let addinAprel=print(events.filter("dataMonth == %@ && dataDay ==%@",months_arr[3], days_arr[0])) 
     print("very good") 
     return addinAprel 
    } 
    print("good") 
} 
else{ 
    print("very bad") 
} 
} 

クラスSecondController

import Foundation 
import UIKit 
import RealmSwift 

class SecondController: UIViewController, UITableViewDelegate { 
let realm = try! Realm() 

override func viewDidLoad() { 
super.viewDidLoad() 

} 
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
print("You select \(massiv[indexPath.row])") 

} 
} 
+0

https://stackoverflow.com/questions/47247885/in-app-purchase-call-function-when-sucessful/47247937#47247937これを参照してください – carbonr

+0

あなたの質問は以前のものに関連しているようです。今すぐ注意してください:StackOverflowは "フォーラムスタイル"システムではありません。人々はある質問から別の質問にあなたを追いかけることはありません。元の質問が解決されていないのに進行している場合は、元の質問を編集してください。これが本当に明確な質問であれば、質問をより明確にしてください。あなたは合理的なコードサンプルを提供していますが、それはいいですが、https://stackoverflow.com/help/mcveの* Verifiable *サブタイトルを見てください。 – jwatkins

答えて

1

それが依存

機能のViewControllerクラスで 流れ。 ような複数のオプションがある:

  1. 委任パターン
  2. 通知
  3. 直接
  4. をのViewControllerを参照する共有エンティティまたはサービスを介して渡すセグエ/セグエをほどく
  5. (例えばシングルトン)
  6. 介して受け渡しが
  7. ストレージの使用(UserDefaults、データベースなど)

質問に答えるには、より多くの文脈を提供する必要があります。

オプション5を使用することができます: ViewControllerからSecondControllerをインスタンス化します(クラススコープ内で参照として保持することができます)。必要なプロパティを設定し、表示/プッシュします。それは最も簡単なオプションです。

ViewControllersProtocols/DelegationNotificationsについてお読みください。