从另一个viewController访问信息
我是新来swift,我想重新填充pickerview使用另一个类的名称数组。我有这个类创建笔记的笔记,每个笔记都有一个名称/标题,我试图访问这些名称/标题并将它们放在pickerview中,任何人都可以帮助我。从另一个viewController访问信息
import UIKit
var allNotes: [Note] = []
var currentNoteindex: Int = -1
var noteTable: UITableView?
let kAllNotes:String = "notes"
class Note: NSObject
{
var date:String
var note:String
var name:String
override init()
{
date = NSDate().description
name = ""
note = ""
}
func dictionary() -> NSDictionary
{
return ["note": note, "date": date, "name": name]
}
我有两个不同的pickerview和一个作品,它只是一个名称不起作用。
override func viewDidLoad()
{
super.viewDidLoad()
fileNamePicker.dataSource = self
fileNamePicker.delegate = self
gradePicker.dataSource = self
gradePicker.delegate = self
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
{
if pickerView == gradePicker
{
return grades.count
}
else
{
return allNotes.count
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
{
if pickerView == gradePicker
{
return grades[row]
}
else
{
//This is where the Problem is, but I don't know how to fix it.
let nameFiles = allNotes[currentNoteindex].name
return nameFiles[row]
}
}
func numberOfComponents(in pickerView: UIPickerView) -> Int
{
return 1
}
nameFiles
正在访问笔记中的名称。由于nameFiles
不是数组,所以不能使用。
如果你想返回一个字符串,只需做return nameFiles
。不过首先请确认nameFiles
实际上是否有价值!
检查你在哪里设置音符类的名称变量。 – williej926
感谢这工作 –
看起来像你的allNotes数组是空的。你有initilaize但似乎不追加对象。里面Note
类
init(_ date: String, note: String, name: String) {
self.date = date
self.note = note
self.name = name
}
创建initiliaze
方法在你的ViewController类试着在后面加上这个样子。现在在下面你可以访问内部选择器查看方法: -
//You can append by doinf iteration based on your data
allNotes.append(Note(date: "value1", note: "Value", name: "name"))
'let nameFiles = allNotes [currentNoteindex] .name'已经是'String'。你为什么不只是返回var? – Ryan
是的,我试过,但它不起作用。 –
你是什么意思'不起作用?你能在这里添加更多细节吗? – Ryan