2017-11-10 4 views
0

構造体を作成し、その型の配列を作成しました。構造体は、2つの変数で構成されていますcollectionViewControllerを収容する私のsecondVCでfirstVCからsecondVCの構造体配列が追加されない

struct notesarray 
{ 
    var prioritycolor : UIColor 
    var note : String 
} 

、私はタイプnotesarrayの配列を作ってきました。私はPriorityColorの値を送っていて、firstVCからノートを出しています。

私はCoreDataを後で設定する予定ですが、今のところこれは簡単な仕方で動作します。私はそうのように、この配列にfirstVCからデータを追加しています:

@objc func handleCheckButton() 
{ 
    print("Added") 
    let secondVC = AddedNotesCollectionViewController() 

    secondVC.allnotes.append(notesarray(prioritycolor: taskTextView.backgroundColor!, note: taskTextView.text)) 
    print(secondVC.allnotes.count) 

    taskTextView.text = nil 

} 

allnotesがsecondVCで見つかった配列の名前です。

私はsecondVC.allnotes.countを印刷していますが、アレイに要素を追加する回数にかかわらず、コンソールで「1」と表示されています。 私はsecondVCに行くたびに配列の要素の数を返しますが、毎回 '0'も表示するように、をviewDidAppear funcのsecondVCに配置することでこれをテストしました。

ここで間違っていることはわかりません。私を助けてください!

答えて

1

ボタンを押すたびにAddedNotesCollectionViewControllerという新しいインスタンスが作成されることになります。

let secondVC = AddedNotesCollectionViewController() 

そして新しいインスタンス空の配列で開始し、あなたが数えるしたがって

secondVC.allnotes.append(notesarray(prioritycolor: taskTextView.backgroundColor!, note: taskTextView.text)) 

を呼び出すことによって、1つの要素を追加され、常に1です。 iOSのは、あなたが必要なものが私の友人:)

正しいです:

二VCがすでにFirstVCのナビゲーションスタックへのそれを押すことによって、またはそのその後、提示が提示への参照を取得する場合のいずれかにロードされた場合/毎回新しいVCを作成するのではなく、VCをプッシュしました。あなたがプッシュ/モーダルに提示されたVCにアクセスする方法を説明する多くの答えがあります。

コメントに記載されているように、SecondVCをプレゼンテーション/プッシュしようとしている場合は、常にprepareForSegueを使用してデータ。

AddedNotesCollectionViewControllerが提示されない場合は、複数のVCの間で共有するのnotesArrayを作成することを検討してください。

希望します。

+0

@ osama-naeem:一言:Bingo !!! VC間でデータを渡す方法は複数あると言われていますが、あなたが好きなものを選ぶことができます:)私はsegueに行くので、私はビンゴと言いました。 –

+0

ありがとうございました!それに乗って、あなたに戻ってくる:)ありがとう! –

+0

@ osama-naeem:いつも歓迎バディ:)ハッピーコーディング –

関連する問題