我正在创建一个包含多个不同民意调查的民意调查应用程序。为此,我在故事板中创建了一个名为PollSelectorTableViewController的视图控制器。它看起来像这样:
它是一个静态表格单元格,当我按下它时,它会转换为SubPollsTableViewController。然而,这不是故事板的一部分。
这是SubPollsTableViewController中的代码(不包括我遇到问题的地方)并且它完美运行:
import UIKit
class SubPollsTableViewController: UITableViewController {
var polls:[String]
static var pollSelectOptions:[String] = [""]
let blueColor = UIColor(red: 0.0, green: 122.0/255.0, blue: 1.0, alpha: 1.0)
let redColor = UIColor(red: 1.0, green: 41.0/255.0, blue: 0.0, alpha: 1.0)
init(setPolls:[String]){
self.polls = setPolls
print(self.polls)
super.init(style: .plain)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return polls.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
print(indexPath)
let cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
if (indexPath.row == 0){
cell.textLabel?.text = polls[indexPath.row]
cell.textLabel?.font = cell.textLabel?.font.withSize(50.0)
cell.textLabel?.textAlignment = NSTextAlignment.center
}
else if (indexPath.row == (polls.count - 1)){
cell.textLabel?.text = polls[indexPath.row]
cell.textLabel?.textColor = redColor
cell.textLabel?.font = cell.textLabel?.font.withSize(25.0)
cell.textLabel?.textAlignment = NSTextAlignment.center
}
else{
cell.textLabel?.text = polls[indexPath.row]
cell.textLabel?.textColor = blueColor
cell.textLabel?.font = cell.textLabel?.font.withSize(21.0)
cell.textLabel?.textAlignment = NSTextAlignment.center
}
return cell
}
*请注意代码未完成
从这里开始,我尝试在单击单元格时将其更改为我在故事板中定义的视图控制器(名为PollViewController)。这是View Controller的图像:
我尝试让它发挥作用的是:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print (indexPath)
if(polls[indexPath.row] == "Background Checks"){
print("Background Checks Accessed")
SubPollsTableViewController.pollSelectOptions = ["Increase Drastically","Increase Slightly","Stay the Same","Decrease Slightly","Decrease Drastically"]
actioncall()
}
}
func actioncall() {
if let PVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PollViewController") as? PollViewController {
PVC.selectOptions = SubPollsTableViewController.pollSelectOptions
self.present(PVC, animated: true, completion: nil)
}
}
这应该导致SubPollsTableViewController更改为PollViewController,而是我的异常断点将其停止在
self.present(PVC, animated: true, completion: nil)
让它运行无论如何都会出现“libc ++ abi.dylib:以NSException类型的未捕获异常终止”
为什么我收到此错误?如何解决此问题以便切换? PollViewController中的文本顺便说一下就是占位符文本。我从Stack Exchange内外的几个不同来源获得了代码,但它仍然无效。
答案 0 :(得分:1)
显示PollViewController的代码是正确的,这种类型的异常与插座连接有关,因此您可以验证您的插座是否在PollViewController中正确连接。