好吧,所以我有用戶輸入一個名稱到一個文本字段中,並且一個按鈕將名稱傳遞給另一個視圖中的tableview,表視圖列出了名稱,但添加了新名稱時它會覆蓋以前的名稱,而不是列出添加到tableview的所有名稱。這裏是我的代碼:NSUserDefaults以表格形式保存並在數組中讀取
viewcontroller1:
@IBAction FUNC addPlant(發件人:AnyObject){
let array = self.title
NSUserDefaults.standardUserDefaults().setObject(array, forKey: "userName")
NSUserDefaults.standardUserDefaults().synchronize()
}
viewcontroller2:
@IBOutlet弱VAR的tableView:UITableView的!
var userDefaults = NSUserDefaults.standardUserDefaults()
var ourText = String()
var textArray:[String] = [String]()
override func viewDidLoad() {
super.viewDidLoad()
//self.tableview.delegate = self
self.tableView.dataSource = self
ourText = userDefaults.stringForKey("userName")!
textArray.append(ourText)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return textArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
cell.textLabel?.text = textArray[indexPath.row]
return cell
}
我不知道你是問這裏。如果您在設置nsuserdefaults後調用viewcontroller2的viewdidload,則基本上將它附加到一個空數組。在將其保存到userdefaults之前,在viewcontroller1中執行附加操作。 –
@NitinAlabur我想要的是將名稱保存在一個視圖控制器中,並將它們加載到viewcontroller 2中,並將它們顯示在表格視圖中。我可以輸入一個名稱並顯示,但我需要無限量的名稱才能輸入並顯示爲列表。 – user4682589
在每個步驟中放置日誌語句,並查看每個步驟的調用位置。您的代碼沒有提供足夠的上下文以瞭解何時呈現視圖控制器。這些在兩個標籤?是vc1呈現/推送vc2? –