2017-07-27 145 views
0

我是新来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 
} 
+0

'let nameFiles = allNotes [currentNoteindex] .name'已经是'String'。你为什么不只是返回var? – Ryan

+0

是的,我试过,但它不起作用。 –

+0

你是什么意思'不起作用?你能在这里添加更多细节吗? – Ryan

回答

0

nameFiles正在访问笔记中的名称。由于nameFiles不是数组,所以不能使用。

如果你想返回一个字符串,只需做return nameFiles。不过首先请确认nameFiles实际上是否有价值!

+0

检查你在哪里设置音符类的名称变量。 – williej926

+1

感谢这工作 –

0

看起来像你的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")) 
相关问题