Saya punya dua UITableView dengan sel khusus, yang pertama UITableView memiliki larik string di UILabel dan UIButton.

Ini FirstViewController saya (UITableView pertama)

enter image description here

Dan secondViewController( kedua UITableView) hanya memiliki UILabel.

Apa yang saya coba lakukan adalah mengklik misalnya di sel kedua UIButton "add to second table" dan meneruskannya dalam array menggunakan NSUserDefaults ke secondViewController, dan ketika saya mengklik yang pertama sel UIButton "tambahkan ke tabel kedua" itu harus menyimpan nilai pertama dan menambahkan nilai ini dengannya dan menambahkannya ke secondViewController.

Ini adalah kode saya (di firstViewController) tetapi seperti yang Anda lihat di sini saya mengirim seluruh array setiap kali, apakah mungkin untuk mengirim setiap kali String dan menambahkannya bersama-sama dalam sebuah array di NSUserDefaults dan kemudian mengambilnya di yang kedua UITableView:

func add(sender:AnyObject){
        NSUserDefaults.standardUserDefaults().setObject(array, forKey: "Array")
    }

Saya mencoba mengirimnya dengan cara ini tetapi hanya mengirim satu String bukan Array of Strings :

func add(sender:AnyObject){
        NSUserDefaults.standardUserDefaults().setObject(array[sender.tag], forKey: "Array")
    }

Kode di secondViewController :

if (NSUserDefaults.standardUserDefaults().stringForKey("Array") != nil){
    array  =  NSUserDefaults.standardUserDefaults().objectForKey("Array")! as! NSArray
}
4
AaoIi 21 Mei 2015, 16:19

1 menjawab

Jawaban Terbaik

Perbarui kode Anda dengan kode berikut:

func add(sender:AnyObject){
if (NSUserDefaults.standardUserDefaults().stringForKey("Array") != nil){
    array1  =  NSUserDefaults.standardUserDefaults().objectForKey("Array")! as! NSArray
}
 array1.append(array[sender.tag])
 NSUserDefaults.standardUserDefaults().setObject(array1, forKey: "Array")
 NSUserDefaults.standardUserDefaults().synchronize()
}

Kode di secondViewController :

  if (NSUserDefaults.standardUserDefaults().stringForKey("Array") != nil){
        array  =  NSUserDefaults.standardUserDefaults().objectForKey("Array")! as! NSArray
    }
}
2
Dharmesh Dhorajiya 21 Mei 2015, 17:15
Ini melewati seluruh array, saya katakan saya harus meneruskan Strings dan menambahkannya ke dalam array. seperti array[indexPath.row]
 – 
AaoIi
21 Mei 2015, 16:28
Itu hanya menambahkan satu nilai, ketika saya mengklik tambahkan ke fav untuk nilai kedua dan ketiga, saya hanya memiliki satu nilai di tabel kedua !! juga memaksa saya untuk melemparkannya ke String seperti : array.append(NSUserDefaults.standardUserDefaults().objectForKey("Array")! as! NSString as String)
 – 
AaoIi
21 Mei 2015, 17:00
Array1 bertipe apa?
 – 
AaoIi
21 Mei 2015, 18:37
Apakah mungkin untuk memeriksa apakah item yang ditambahkan sudah ada di array NSUserdefaults sebelum menambahkannya?
 – 
AaoIi
22 Mei 2015, 08:52