2014-09-21 107 views
0

爲了能夠動態調整單元格的內容,我在表格單元格中創建了兩個自定義標籤。我第一次嘗試使用「小標題」風格,除了單元格沒有調整我想要的方式,它看起來非常混亂。訪問自定義表格單元格標籤

我的問題是:如何訪問這些標籤以將我的API從我的API附加到它們?

查看控制器代碼:

import UIKit 

class nyheterViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, APIControllerProtocol { 

    @IBOutlet weak var nyheterTableView: UITableView! 
    @IBOutlet weak var titleLabel: UILabel! 

    var searchResultsData: NSArray = [] 
    var api: APIController = APIController() 

    func JSONAPIResults(results: NSArray) { 
     dispatch_async(dispatch_get_main_queue(), { 
      self.searchResultsData = results 
      print(self.searchResultsData) 
      self.nyheterTableView.reloadData() 
     }) 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     var APIBaseUrl: String = "http://*.se/*/*.php" 
     var urlString:String = "\(APIBaseUrl)" 

     //Call the API by using the delegate and passing the API url 
     self.api.delegate = self 
     api.GetAPIResultsAsync(urlString, elementName:"news") 
    } 

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

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     //print(self.searchResultsData.count) 
     return self.searchResultsData.count 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cellIdentifier: String = "nyheterResultsCell" 


     let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell 

     //nyheterTableViewCell.cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier); 

     //Create a variable that will contain the result data array item for each row 
     var cellData: NSDictionary = self.searchResultsData[indexPath.row] as NSDictionary 
     //Assign and display the Title field 
     var releaseDate: String = cellData["date"] as String 
     var titleVar: String = cellData["title"] as String 
     var titleMix: String = "\(titleVar)" + " - " + "\(releaseDate)" 

     cell.textLabel?.text = titleMix //textLabel worked out fine using "Subtitle" style. 

     // Get the release date string for display in the subtitle 

     cell.detailTextLabel?.text = cellData["content"] as String? //Same 

     return cell 
    } 
} 

我明白,我不能沒有以某種方式將它們連接到ViewController訪問這些標籤。創建網點到ViewController會產生一個錯誤,我無法使用從原型單元到ViewController的連接。 因此,我創建了一個新課程,名爲nyheterTableViewCell,我將其連接到表格單元格並將出口連接到我的標籤。

nyhterTableViewCell代碼:

import UIKit 

class nyheterTableViewCell: UITableViewCell { 

    @IBOutlet weak var nyhetLabel: UILabel! 
    @IBOutlet weak var titleLabel: UILabel! 

    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 
    } 

    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 

     // Configure the view for the selected state 
    } 

} 

我在斯威夫特的編程和Xcode的一個初學者。

乾杯!

回答

2

您不需要連接到視圖控制器的標籤。你自定義表格視圖單元格的例子看起來是正確的。

要訪問標籤屬性,你會想行

let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell

改變

let cell: nyheterTableViewCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as nyheterTableViewCell