2014-07-15 3 views
0

표보기의 사용자 정의 셀에 내용을 표시하려고합니다. 마스터 디테일 애플리케이션으로 시작하여 사용자 정의하려고했습니다. 사용자 정의 셀을 사용하여 새 xib를 만들고이를 클래스에 연결하고 필요한 콘센트를 생성했습니다.선택 사항을 unwrap 할 수 없습니다. 사용자 정의 표 셀의 레이블에 액세스 할 때 아무 것도 없습니다. - 신속한

이것은 MasterView 컨트롤러입니다 이것은 내가 항상 "풀다 수 없습니다 얻을 그러나 정의 셀

import UIKit 

class SimpleTableCell : UITableViewCell{ 
    @IBOutlet var userLabel: UILabel 
    @IBOutlet var hoopLabel: UILabel 
    @IBOutlet var postLabel: UILabel 


    func loadItem(#user: String, hoop: String, post: String) { 
     userLabel = UILabel() 
     hoopLabel = UILabel() 
     postLabel = UILabel() 
     userLabel.text = user 
     hoopLabel.text = hoop 
     postLabel.text = post 
    } 

} 

의 클래스

import UIKit 

class MasterViewController: UITableViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     var nipName=UINib(nibName: "SimpleTableCell", bundle:nil) 
     self.tableView.registerNib(nipName, forCellReuseIdentifier: "cell") 
     self.tableView.registerClass(SimpleTableCell.self, forCellReuseIdentifier: "cell") 


     //Create Add Button 
     let addButton = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "insertNewObject:") 
     self.navigationItem.rightBarButtonItem = addButton 
     loadInitialData() 
     tableView.reloadData() 

    } 

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as SimpleTableCell 
     cell.loadItem(user:"user1", hoop: "hoop1", post: "There is text in the table") 
     return cell 
    } 
} 

입니다 (제가 편집하지 않았다 모든 기능을 제거) userLabel의 텍스트를 변경하려고하자마자 loadItem 함수에서 "optional.none"을 사용합니다. 텍스트를 추가하려고 시도하기 전에 레이블을 초기화하기 때문에 얻지 못합니다. 아니면 잘못된 것입니까?

도움 주셔서 감사합니다.

+2

텍스트를 설정하기 전에 레이블을 초기화 할 필요가 없습니다. nib가 있으면 nib의 라벨을 콘센트에 연결하십시오. – Johnykutty

답변

0

ok 어떻게 든 최신 xcode 베타를 설치하고 프로젝트를 다시 작성하면 문제가 해결됩니다. 도움 주셔서 감사합니다.

-1

보기에서 동일한 셀 식별자에 대해 동일한 셀의 클래스와 펜촉을 등록하려고합니다. xib 드래그하여 셀에 레이블 세 개를 놓고 IBOutlets에 연결 한 경우 self.tableView.registerClass(SimpleTableCell.self, forCellReuseIdentifier: "cell") 줄도 제거하십시오. xib 생성 레이블을 사용하지 않는 경우 프레임을 설정하고 init(style: UITableViewCellStyle, reuseIdentifier: String!) 메서드에서 하위보기로 셀을 추가하고 또한 줄을 제거하십시오. self.tableView.registerNib(nipName, forCellReuseIdentifier: "cell")

+0

xib을 사용하고 있습니다. IB 콘센트는 드래그 앤 드롭으로 연결됩니다. self.tableView.registerClass (SimpleTableCell.self, forCellReuseIdentifier : "cell") 을 제거하면 결과가 다른 오류입니다. SIGABRT var cell = tableView.dequeueReusableCellWithIdentifier ("cell", forIndexPath : indexPath)의 호출에 SimpleTableCell – dburgmann

+0

xib에서 셀의 사용자 정의 클래스를 변경 했습니까? – Johnykutty

+0

예 셀이 "SimpleTableCell"이라는 사용자 정의 클래스에 할당되었습니다.이 셀은 첫 번째 게시물에 표시됩니다. – dburgmann