을 닫을 때마다 나는내가 응용 프로그램을 완전히 (스위프트)
class myArrayDataStructure {
static var myArray = Array<String>() // the singleton array
private init() {} // prevents unwanted access
}
내가 문자열을 입력하고 버튼 등을 사용하여 저장하는 사용자에게있는 UIViewController의 클래스가 다음과 같습니다 :
@IBAction func EnterAction(_ sender: Any) {
if let sContent = TextF.text {
// append it to the global singleton array
myArrayDataStructure.myArray.append(sContent)
UserDefaults.standard.set(myArrayDataStructure.myArray, forKey: "items")}
또 다른 viewController에서 배열을 당기고 tableView에 표시합니다. 내 식별자 셀은 "셀"이라고 :
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return myArrayDataStructure.myArray.count
}
let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "Cell")
let returnedItems = UserDefaults.standard.stringArray(forKey: "items") ?? [String]()
let tempLabel = returnedItems[indexPath.row]
cell.textLabel?.text = tempLabel + " Good Job"
return cell
코드는 완벽하게 작동하고 내가 응용 프로그램을 저장하고 테이블에 표시 항목,하지만 홈 버튼을 두 번 클릭하고 경우 다시 열 수 있어요, 테이블 비었다. 앱을 완전히 닫은 후에도 저장된 항목을 테이블에 보관하는 방법은 무엇입니까?
override func viewDidAppear(_ animated: Bool) {
let returnedItems = UserDefaults.standard.stringArray(forKey: "items") ?? [String]()
for item in returnedItems{
totalAmount.text = item + " Miles" // totalAmount is a label under the table
}
print(returnedItems)
table.reloadData()
}
'numberOfRowsInSection' 메소드를 보여주세요. – rmaddy
게시 한 코드에서 배열을 UserDefaults에만 설정하고 읽지는 않습니다. – andreamazz
이제'UserDefaults'에서'myArrayDataStructure.myArray'를 초기화하는 방법을 보여줍니다. – rmaddy