2016-11-11 4 views
2

내가의 프로그램에 VC를 추가 충돌 전화/이메일에 대한 확인란 난 다음 셀에 대한 클래스를 생성하고 난디큐 재사용 셀은 항상이 코드에서

있는 tableView cellForRowAtIndexPath에서이 작업을 수행 할 때 나는 스토리 보드 세포와 같은 식별자를 설정

func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) { 
     let vc = EditContactViewController() 
     self.navigationController?.pushViewController(vc, animated: true) 

) 첫 VC 다시 보여 1,515,

let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as? ConfigCell 

return cell! 

이 날을 준다 :

fatal error: unexpectedly found nil while unwrapping an Optional value 

나도 withIdentifier, forIndexPath 시도하고 말한다

2016년 11월 12일 01 : 35 : 28.626 iEvents3 [2,637을 : 47,714] ** * 이 캐치되지 않은 예외 'NSInternalInconsistencyException'을 (를) 이유로 종료하는 이유 : '식별자 셀이있는 셀의 큐에서 큐를 추출 할 수 없습니다. 또는 식별자의 클래스를 등록하거나 스토리 보드에 프로토 타입 셀을 연결해야합니다'

i 재사용 식별자를 삭제하고 다시 넣어서 응용 프로그램을 정리하고 다시 시작하십시오.

감사합니다.

답변

1

여기에는 몇 가지 이유가 될 수있다 : 당신이 다음로 설정되어 있는지 재사용 식별자을 확인 컨트롤러 자체에 UITableViewCell이있는 경우

  1. 다음 "cell"

  2. 당신이 당신의 UITableViewCell에 대해 별도의 .xib이있는 경우,

    는) 당신이 table viewoutlet이 설정되어 있는지 경우에만

    self.tableView.register(UINib(nibName:"CustomTableViewCell"), forCellWithReuseIdentifier: "cell") 
    

    .nib 등록 컨트롤러의 viewDidLoad()에 테이블 뷰 셀의 .nib을 등록합니다. 그렇지 않은 경우 outlettable view 인 경우 여전히 nil 인 경우 셀의 .nib을 등록하지 않습니다.

    b) 셀이 프로그램을

    FUNC에있는 tableView (_있는 tableView 충돌 확장하면 재사용 식별자가"cell"

+0

내가이 문제를 해결? self.navigationController를 .pushViewController (V가! 애니메이션 : TRUE) 스토리 보드에서 내가 V에 대한 스토리 보드 식별자를 넣어 컨트롤러 "help" –

1

해당 셀을 xib로 가지고 있습니까? 테이블 뷰에 셀을 추가 했습니까? 이러한 경우이 시도

@IBOutlet weak var tableView: UITableView! 

    override func viewDidLoad() { 
self.tableView.register(UINib(nibName: "ConfigCell",bundle: nil), forCellReuseIdentifier: "cell") 
} 
+0

아니요. 그것은 작동하지 않았다. 스토리 보드에 모두를 추가했습니다 –

+0

* 스토리 보드에서 * 둘 다 * 코드 ** 및 **에 등록 했습니까? 하자 V = self.storyboard .instantiateViewController (withIdentifier : "도움")? – Honey

0

으로 설정되어 있는지 확인 : SLExpandableTableView를!, willExpandSection 섹션 : UINT는 애니메이션 : BOOL)를 {

} 

func tableView(_ tableView: SLExpandableTableView!, didExpandSection section: UInt, animated: Bool) 
{ 
    let indexPath = IndexPath(row: 0, section: Int(section)) 
    let cell: SLExpandableHeaderCell = (tableView.cellForRow(at: indexPath) as! SLExpandableHeaderCell) 

    cell.empProfImage?.image = UIImage(named: "upArrowGrey.png") 

    //  let imgCategorySymbol: UIImageView = (cell.viewWithTag(5030) as! UIImageView) 
    //  imgCategorySymbol.image = UIImage(named: "upArrowGrey.png") 

    for i in 0..<arrCategoriesServices.count 
    { 
     if !selectedSectionIndex.contains("\(i)") && i != Int(section) { 

      tableView.collapseSection(i, animated: true) 
     } 
    } 
} 

func tableView(_ tableView: SLExpandableTableView!, willCollapseSection section: UInt, animated: Bool) { 
    let indexPath = IndexPath(row: 0, section: Int(section)) 

    let cell: SLExpandableHeaderCell = (tblExpandableView.cellForRow(at: indexPath) as! SLExpandableHeaderCell) 
    cell.empProfImage?.image = UIImage(named: "downArrowGrey.png") 

    //  let imgCategorysymbol: UIImageView? = (cell.viewWithTag(5030) as! UIImageView) 
    //  imgCategorysymbol?.image = UIImage(named: "downArrowGrey.png") 
} 

func tableView(_ tableView: SLExpandableTableView, canChangeSection section: Int) -> Bool { 
    if collapsingSection != section { 
     return true 
    } 
    else { 
     return false 
    } 
} 

func tableView(_ tableView: SLExpandableTableView!, didCollapseSection section: UInt, animated: Bool) { 

} 

func tableView(_ tableView: SLExpandableTableView, canExpandSection section: Int) -> Bool 
{ 
    return true 
} 


func tableView(_ tableView: SLExpandableTableView!, needsToDownloadDataForExpandableSection section: Int) -> Bool 
{ 
    return false 
} 

func tableView(_ tableView: SLExpandableTableView!, expandingCellForSection section: Int) -> UITableViewCell 
{ 
    var cell: SLExpandableHeaderCell! 

    if cell == nil 
    { 
     cell = tblExpandableView.dequeueReusableCell(withIdentifier: headerCell) as! SLExpandableHeaderCell 
    } 


    let label = UILabel() 
    label.frame = CGRect(x: CGFloat(10), y: CGFloat(10), width: CGFloat(100), height: CGFloat(25)) 
    cell.addSubview(label) 


    cell.empProfImage?.image = UIImage(named: "downArrowGrey.png") 
    cell?.selectionStyle = .none 

    let cat: CategoryModel = (arrCategory[section] as! CategoryModel) 
    label.text = cat.categoryName 
    print("Expanding table for categoty : \(cat.categoryName)") 
    // cell.textLabel?.frame = frame 
    // cell?.textLabel?.text = cat.categoryName 

// Util.setCategoryDetailFontColorAndSize (레이블 :?! (셀 .textLabel)! labelText : cat.categoryName) Util.setCategoryDetailFontColorAndSize (레이블 : 레이블 , labelText :? '!'하지 cat.categoryName) 세포 .textLabel .backgroundColor = UIColor.clear

return cell! 
} 

public func tableView(_ tableView: SLExpandableTableView!, downloadDataForExpandableSection section: Int) 
{ 

} 
+0

이 줄에서 응용 프로그램이 종료 될 수 있습니다. cell : SLExpandableHeaderCell = (tblExpandableView.cellForRow (at : indexPath) as! SLExpandableHeaderCell) –

1

확인이 있는지 더 인터페이스 콘센트 연결에 로그인하십시오.

enter image description here