2017-10-14 52 views
0

我有視圖控制器,它已連接到tableView。我提出控制器這樣的:Tableview零,但存在故事板

(在以前的控制器):

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     let vc = DetailCharacterViewController() 
     let characterModel = (self.viewModel.arrValues[indexPath.row] as! CharacterListItem).correspondingCharacter 
     let vm = DetailCharacterViewModel(m: characterModel) 
     vc.viewModel = vm 
     self.navigationController?.pushViewController(vc, animated: true) 
     tableView.deselectRow(at: indexPath, animated: true) 
    } 

但是控制器出現時,它崩潰時嘗試訪問的tableView財產,那其實是:

@IBOutlet weak var tableView: UITableView! 

在調試我可以看到它是零。爲什麼?

+0

因爲'let vc = DetailCharacterViewController()'不是調用ViewController「in/linked with」故事板,而是創建一個新的故事板,但不是故事板中的一個。 – Larme

+0

@Larme好吧,如何解決它? –

+0

'vc'應該由其故事板實例化;檢查[這個答案](https://stackoverflow.com/a/32139127/5501940)。 –

回答