我有一个带有tableview的主viewController。当在单元格上按下按钮时,将出现一个模态,并允许用户选择多个选择。因此,我提出了一个模态控制器,它又是一个tableViewController,在关闭时将给出一个字符串值。但是一旦modalView被关闭并返回到我的主tableView,tableView.reload()在展开一个可选值时将显示Nil。
代码:
// In modalTableViewController
//Protocol
protocol modalViewControllerDelegate {
func sendText( text: String)
}
//after all cell operations Done Button Action
@IBAction func doneBtnPressed(_ sender: Any) {
mystr = selectedValues.joined(separator: ",")
if(mystr != "")
{
let vc = viewController()
delegate?.sendText(text: self.mystr)
}
self.dismiss(animated: true, completion: nil)
}
//In viewController
class ViewController : UIViewController,modalViewControllerDelegate{
func sendText(text: String) {
saveFormValue(mystr: text)
}
// .....
//SaveFunction
func saveFormValue(mystr:String){
self.tableView.reloadData() //HERE IAM GETTING ERROR (FOUND NIL)
//save operations goes here
}
.....
///
//Checking Cell type and calling function
if (cell.type == .multiSelect) {
showCheckBox(data: ["One","Two","Three"])
}
// Modal view function
func showCheckBox(data:[String])
{
print("ShowCheckBox")
checkBoxData = data //Assigning to a globalVariable
self.performSegue(withIdentifier: "multiselectSegue", sender: self)
}
答案 0 :(得分:0)
您是否将mainVC分配为模式的委托?我相信这是您所缺少的步骤(基于发布的代码)
如果是,则可能要添加断点并检查sendText
和saveFormValue
方法是否真正被调用。