使用Swift 3将数据从Modal Viewcontroller传递到rootController(不要塞格)
我遇到问题。使用Swift 3将数据从Modal Viewcontroller传递到rootController(不要塞格)
我需要帮助。我一直在寻找一个约5个小时的解决方案。可惜没有成功。
我的问题是,我有几个故事板,并创建没有塞格。
我很喜欢将所选的Tableviewcell标题传递给rootViewController。
这是我在我的ModalViewTable代码:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
let indexNumber = "\(indexPath.row)"
let indexPath = tableView.indexPathForSelectedRow
let currentCell = tableView.cellForRow(at: indexPath!) as UITableViewCell!
let storyboard = UIStoryboard(name: "addTime", bundle: nil)
var viewController = storyboard.instantiateViewController(withIdentifier: "addTimeVC") as! addTimeViewController
viewController.test = "TESTABCDEF"
passedValue = ("\(indexNumber)")
dismiss(animated: true, completion: nil)
}
我在firstViewController属性test
。这里有什么错? 我也尝试与代表和封闭,但没有成功。请帮帮我。
试试这个:
let indexNumber = "\(indexPath.row)"
let indexPath = tableView.indexPathForSelectedRow
let currentCell = tableView.cellForRow(at: indexPath!) as UITableViewCell!
let viewController = navigationController!.presentingViewController as! addTimeViewController
viewController.test = "TESTABCDEF"
passedValue = ("\(indexNumber)")
navigationController!.dismiss(animated: true, completion: nil)
当你提出一个视图控制器模式方式使用present(_:animated)
方法,这是视图控制器呈现有presentingViewController
属性设置为呈现它的视图控制器。换句话说,该属性包含对前一个视图控制器的引用。
我试过这段代码。该应用程序崩溃。这是错误代码:无法将类型'UINavigationController'(0x1104e8008)的值转换为'timeSheet.addTimeViewController'(0x10e257d68)。这是控制器的代码: –
@UmitSevim答案已更新!当你有机会时请再试一次...... :) –
不幸的是没有成功。我再次得到相同的错误:(。 –
您可能需要呈现刚刚创建的'viewController'。顺便说一句,你想回到你以前的VC *或*提出一个全新的? –
如果我再次呈现它,那么记忆力不好。我有 Present(vc,animated:true ...)到ModalViewController,我想要退出。 使用静态变量,我可以传递标题,但它不干净或? –
不,使用'static var'会让你陷入麻烦。请参阅下面的答案以获得更好的选择。 –