【问题标题】:Pass data from Modal Viewcontroller to rootController with Swift 3 (don`t Segue)使用 Swift 3 将数据从 Modal Viewcontroller 传递到 rootController(不要 Segue)
【发布时间】:2017-05-04 20:33:49
【问题描述】:

我有问题。

我需要帮助。我一直在寻找解决方案大约 5 个小时。可惜没有成功。

我的问题是我有几个故事板并且在没有 Segue 的情况下创建。

我希望将选定的 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。这里有什么问题? 我也尝试过委托和闭包,但没有成功。请帮我。

【问题讨论】:

  • 您可能需要出示您刚刚创建的viewController。顺便说一句,你想回到你以前的 VC 还是展示一个全新的?
  • 如果我再介绍一次,那还是为了回忆不好。我对 ModalViewController 使用了 Present (vc, animated: true ...) ,我想用解雇回来。使用静态变量,我可以通过标题,但它不干净还是?
  • 不,使用static var 会在以后给您带来麻烦。请在下面查看我的答案以获得更好的选择。

标签: ios swift viewcontroller modalviewcontroller


【解决方案1】:

试试这个:

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 答案已更新!有机会请再试一次... :)
  • 很遗憾没有成功。我再次遇到同样的错误:(。
  • @UmitSevim Weird...请尝试按原样复制和粘贴我的代码。你可能错过了什么……
  • 我也复制了你的代码并没有成功插入:)。我没有进一步发展的愿望。 :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-08
  • 2016-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多