2016-03-24 2 views
0

を初期化します。データを収集するためにsecondViewControllerに空の配列がありますが、ビューが配列をロードするたびに空です。Swift prepareForSegueは、PrepForSegue経由でFirstViewController(テーブルビュー)にデータを渡すときに空の配列

コアデータまたはnsuserdefaultsに入る前に、どのようにして2番目のView Controllerにデータを追加できますか?

ここにも同様の問題がありますが、この方法では私の問題は解決していません。 TableViewContrllerで Trouble passing Array through prepareForSegue

// View Controller 

// a new dictionary object is created 
myDictionary = ["apples": 3, "oranges": 4, "bananas": 5] 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if segue.identifier == "saveData" { 

     let dvc = segue.destionationViewController as! MyTableViewController 

     dvc.arrayOfDictionaries += [myDictionary] 

    } 
    resetAll() 
} 


// My Table View Controller 
var arrayOfDictionaries: [[String: AnyObject]] = [] 
var dictionary = [String:AnyObject]() 

私は、データがarrayOfDictionariesに固執する取得できますかFUNC

override func viewDidLoad() { 
    super.viewDidLoad() 

    loadData() // 
} 

func loadData() { 

    for dict in arrayOfDictionaries { 

     for (key, value) in dict { 
     // extract data 
     dictionary[key] = value 

     } 

    } 
} 

がありますか? ありがとう

+0

コードは何ですか? – Larme

+0

'resetAll()'は辞書をリセットしますか?私はSwiftを話しませんが、配列の配列が割り当てられていない/初期化されていない場合、 'array + = newArray'は機能しますか? – Larme

+0

resetAllは、データが渡された後にmyDictionaryの別のインスタンスが作成された後に辞書をリセットします。データは渡されますが、一度に1つのインスタンスのみが渡されます。 myDictをリセットして新しいdictを取得する必要があります – Dazzle

答えて

0

なぜ値が空であれば配列に値を追加していますか?将来の問題を回避するために

、あなただけの、(それが空または他の何かだ場合、それは、初期化されている場合)ですから、arrayOfDictionaries状態について

を気にすることは決してないだろう

dvc.arrayOfDictionaries = [myDictionary] 

に電話してくださいすることができますviewDidLoadおよびその他のビューライフサイクルメソッドをテーブルビューコントローラで確認してください。そこに配列をもう一度初期化している可能性はありますか?

+0

チップのおかげで。 arrayOfDictionaries:[[String:AnyObject]]!でも、同じ問題が発生します。 – Dazzle

+0

tableViewControllerの 'viewDidLoad' /' viewWillAppear'(など)で何かしていますか? –

+0

私はロードするとloadData func – Dazzle

関連する問題