从另一个 viewController 访问信息
Accessing information from another viewController
我是 swift 的新手,我正在尝试使用来自另一个 class 的名称数组重新填充一个 pickerview。我有这个 class 创建笔记的笔记,每个笔记都有一个 name/title,我正在尝试访问那些 names/title 并将它们放在 pickerview 中,任何人都可以帮助我。
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[row]
不起作用,因为 nameFiles
不是数组。
如果你想 return 一个字符串,只需执行 return nameFiles
。不过,请首先检查以确保 nameFiles
确实具有值!
您的 allNotes 数组似乎是空的。你有 initilaize 但似乎没有追加对象。在 Note
class
中创建 initiliaze
方法
init(_ date: String, note: String, name: String) {
self.date = date
self.note = note
self.name = name
}
在您的 viewcontroller class 中尝试像这样附加。现在您可以在下方访问选择器视图方法:-
//You can append by doinf iteration based on your data
allNotes.append(Note(date: "value1", note: "Value", name: "name"))
我是 swift 的新手,我正在尝试使用来自另一个 class 的名称数组重新填充一个 pickerview。我有这个 class 创建笔记的笔记,每个笔记都有一个 name/title,我正在尝试访问那些 names/title 并将它们放在 pickerview 中,任何人都可以帮助我。
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[row]
不起作用,因为 nameFiles
不是数组。
如果你想 return 一个字符串,只需执行 return nameFiles
。不过,请首先检查以确保 nameFiles
确实具有值!
您的 allNotes 数组似乎是空的。你有 initilaize 但似乎没有追加对象。在 Note
class
initiliaze
方法
init(_ date: String, note: String, name: String) {
self.date = date
self.note = note
self.name = name
}
在您的 viewcontroller class 中尝试像这样附加。现在您可以在下方访问选择器视图方法:-
//You can append by doinf iteration based on your data
allNotes.append(Note(date: "value1", note: "Value", name: "name"))