如何立即设置CustomTableView(CoreData)

时间:2015-12-28 08:32:44

标签: ios swift uitableview core-data

TextField中有ButtonTableViewViewController 我按Button - >将文本导入数据并导出到TableView

但它不起作用

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {


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



    @IBOutlet weak var txtClient: UITextField!



    @IBAction func butNhap(sender: AnyObject) {
        var newName = txtClient.text as String



        var myDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
        var myContext: NSManagedObjectContext = myDelegate.managedObjectContext!
        var myText: AnyObject = NSEntityDescription.insertNewObjectForEntityForName("Client", inManagedObjectContext: myContext)
        myText.setValue(newName, forKey: "name")
        txtClient.text = ""
    }

    @IBOutlet weak var myTableView: UITableView!


    var exportArray = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.myTableView.delegate = self
        self.myTableView.dataSource = self

        myTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myCell")

    }

    func export() -> [String] {
        var myDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
        var myContext: NSManagedObjectContext = myDelegate.managedObjectContext!

        var exportName = NSFetchRequest(entityName: "Client")
        exportName.returnsObjectsAsFaults = false

        var exportValue = myContext.executeFetchRequest(exportName, error: nil)

        for result: AnyObject in exportValue! {

            exportArray.insert((result.valueForKey("name") as! String), atIndex: 0)
        }
        return exportArray

    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return 10
    }


    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as! UITableViewCell

        cell.textLabel?.text = exportArray[indexPath.row]
        return cell
    }

}

1 个答案:

答案 0 :(得分:0)

创建一个自定义UITableviewcell,并提供类似名称和标识符" customtableCell",然后在相应的视图控制器上,您必须注册该自定义单元格,

let nibName = UINib(nibName: "customtableCell", bundle:nil)
    tblConnect!.registerNib(nibName, forCellReuseIdentifier: "customtableCell")

之后在cellForRowAtIndexPath上使用以下类型的代码,

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{

    let identifier = "customtableCell"
    var tablecell: customtableCell!

    if (tablecell == nil) {
        tablecell  = tableView.dequeueReusableCellWithIdentifier(identifier) as? customtableCell
    }

    return tablecell
}