gpt4 book ai didi

arrays - 将文本保存在数组中并显示在表格 View 中

转载 作者:搜寻专家 更新时间:2023-11-01 05:37:47 25 4
gpt4 key购买 nike

我正在尝试创建一个基于字符串数组显示表格 View 的应用。

我有一个 View Controller 和一个较小的内容 View 。在 View Controller 中有一个文本字段和一个按钮,它们应该将写入的文本保存在一个数组中并将其显示在 TableView Controller 中。以及将其嵌入到内容 View 中。

我不知道如何保存写入的文本并将其添加到数组中,也许使用追加。

如何在 TableView 中显示数组并将数组保存在 NSUserDefaults 中?

编辑:这是 View Controller 和内容 View 的图像。我想在文本字段中插入一个字符串(绿色按钮保存上方的那个),然后我点击绿色按钮,我写的字符串被添加到数组中并显示在嵌入的 TableView Controller 的 TableView 单元格中内容 View 。同时,文本字段返回空,但我已经知道如何清除它。然后,我可以在文本字段中重新编写文本,它应该会重复我刚才描述的操作。在 NSUserDefaults 中保存的时刻并不是那么重要。谢谢您的帮助。 :)

http://i.stack.imgur.com/z5uTc.png

编辑 2:

主VC

import UIKit

class mainVC: UIViewController {
@IBOutlet var txtField: UITextField!
var embTableVC: tableVC!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "embededTableVC" {
embTableVC = segue.destinationViewController as! tableVC
}
}

@IBAction func Save() {
if let Text = txtField.text {
if txtField.text == "" {
myArray.append(Text)
let row = myArray.count-1
let indexPath = NSIndexPath(forRow: row, inSection: 0)
embTableVC.myTableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}
}
txtField.text = ""
txtField.resignFirstResponder()
}
}

表格VC

  import UIKit

var myArray = [String]()

class tableVC: UITableViewController {
@IBOutlet var myTableView: UITableView! {
didSet {
myTableView.dataSource = self
myTableView.delegate = self
}
}

override func viewDidLoad() {
super.viewDidLoad()
myTableView.dataSource = self
myTableView.delegate = self
myTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "customcell")
// Do any additional setup after loading the view, typically from a nib.

}

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
myTableView.reloadData()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myArray.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = myTableView.dequeueReusableCellWithIdentifier("customcell", forIndexPath: indexPath) as UITableViewCell

cell.textLabel?.text = myArray[indexPath.item]

return cell
}

非常感谢:)

最佳答案

存储信息:

// Get the standardUserDefaults object, store your UITableView data array against a key, synchronize the defaults
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:arrayOfImage forKey:@"tableViewDataImage"];
[userDefaults setObject:arrayOfText forKey:@"tableViewDataText"];
[userDefaults synchronize];

检索信息:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSArray *arrayOfImages = [userDefaults objectForKey:@"tableViewDataImage"];
NSArray *arrayOfText = [userDefaults objectForKey:@"tableViewDataText"];
// Use 'yourArray' to repopulate your UITableView
On first load, check whether the result that comes back from NSUserDefaults is nil, if it is, you need to create your data, otherwise load the data from NSUserDefaults and your UITableView will maintain state.

在 Swift 中,可以使用以下方法:

let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setObject(arrayOfImage, forKey:"tableViewDataImage")
userDefaults.setObject(setObject:arrayOfText, forKey:"tableViewDataText")
userDefaults.synchronize()

var arrayOfImages = userDefaults.objectForKey("tableViewDataImage")
var arrayOfText = userDefaults.objectForKey("tableViewDataText")

希望这对您有所帮助。您还可以使用 xcdatamodeld 来保存和检索数据。

关于arrays - 将文本保存在数组中并显示在表格 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34860857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com