2016-05-10 48 views
3

即時嘗試使一個應用程序,其中用戶可以添加一個單元格,他可以添加不同的內容到單元格如名稱,生日和Hobbys例如。 目前爲止這麼好。 但是我怎麼能告訴他每個單元格的個別內容? 我是否必須添加具有不同標籤的ViewController,其中我加載了爲特定單元格保存的文本,例如NSuserdefaults/Coredata? 還是我完全錯了?TableviewCells與不同的內容

我現在所擁有的:在我的viewController,我可以在我的tableviewController添加項目

@IBAction func doneButtonPressed(sender: AnyObject) { 
    name = txtFieldName.text! 
    vc.items.append(name) 
    vc.tableView.reloadData() 
    self.dismissViewControllerAnimated(false, completion:nil) 
} 

:將其設定爲之前說過

var items = [String](); 

override func viewDidLoad() { 
    super.viewDidLoad() 
    print(items) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return items.count 
} 


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("itemCell", forIndexPath: indexPath) 

    cell.textLabel!.text = items[indexPath.row] 
    return cell 
} 
+0

請提供一些示例代碼,以使這個問題更加清晰。 –

+0

好吧,現在我怎樣才能保存每個單元格的數據,同時創建它,以及如何加載不同內容的每個單元格。 – Korken55

回答

0

您將數據追加到一個數組細胞。您可以根據他們通過使用數組中的索引和index.row變量所點擊的內容來獲取這些數據。

1

您需要有點兒落實這件事

NavigationController - >(SEGUE)的TableView或TVController - >(顯示項目SEGUE)的TableView或TVController

使用這個例子中,我們應該爲每個tableview中和細胞文件 第一對(newsvc.swift newscell.swift) 第二對(newsitemvc.swift newsitemcell.swift)

因此,當我們知道這是一個MVC

我們需要實現一些靜態數據 創建模型文件(添加結構並對其進行初始化)

struct News { 
    var time: String? 
    var title: String? 
    var text: String? 

    init(time: String?, title: String?,text: String?) { 
     self.time = time 
     self.title = title 
     self.text = text 
    } 
} 

在第二個文件中,我們創造在結構數據

let newsData = [ News(time: "10:00", title: "Test", text: "Some text"), 
       News(time: "11:00", title: "Test1", text: "Some text1")] 

NewsCell.swift

class NewsCell: UITableViewCell { 

    @IBOutlet weak var timeLabel: UILabel! 

    @IBOutlet weak var titleLabel: UILabel! 

    @IBOutlet weak var textLabel: UILabel! 

    var news: News! { 
    didSet { 
     timeLabel = news.time 

     titleLabel = news.title 

     textLabel.text = news.text 
    } 
    } 
} 

NewsViewController我們需要添加「News」數組並使其從「newsData」中獲取數據

var newsItems: [News] = newsData 

更新功能

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

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return newsItems.count 
    } 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("NewsCell", forIndexPath: indexPath) as! NewsCell 
    let news = newsItems[indexPath.row] as News 
    cell.news = news 
    return cell 
    } 

後就要補充賽格瑞

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow! 
    tableView.deselectRowAtIndexPath(indexPath, animated: true) 
    if segue.identifier == "showItemSegue" { 
     if let destViewController = segue.destinationViewController as? NewsItemViewController { 
     let seguedArray = newsItems[indexPath.row] as News 
     destViewController.newSeguedArray = seguedArray 
     } 
    } 
    } 

enter image description here

enter image description here

+0

好的,我如何保存創建的單元格的數據?我可以使用NSuserdefaults嗎?還是我必須使用CoreData – Korken55

+0

我已更新我的答案 –

+0

@ Korken55現在你明白了嗎? –