将数据从子控制器传递到 PageViewController

Posted

技术标签:

【中文标题】将数据从子控制器传递到 PageViewController【英文标题】:Pass data from child controller to PageViewController 【发布时间】:2019-12-03 22:34:37 【问题描述】:

我有一个 PageViewcontroller 有 3 个子控制器。我想将数据从第一个孩子传递给 Root PageViewController 这是我的根控制器。

我试过了:

class RootViewController: UIPageViewController ,UIPageViewControllerDataSource

var isSelectAnything : Bool = false


func addRightBottom(sendBool : Bool)
    self.isSelectAnything = sendBool
    print(isSelectAnything) // always return false even I select a cell from my child




这是我的子控制器。

class FirstView: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource 

//There is a collectionview and this method works on :

  func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) 

let sendData = RootViewController()
        sendData.addRightBottom(sendBool: true)




当我从 collectionview 中选择一个单元格时,我想将 isSelectAnything 值更改为 true,但它总是返回 false。我搜索但找不到任何解决方案。

我尝试了协议,但它再次不起作用

【问题讨论】:

问题是let sendData = RootViewController()。那是一个不同的 RootViewController。见programmingios.net/dont-make-a-new-instance-by-mistake 【参考方案1】:

改变

let sendData = RootViewController()

let sendData = parent as! RootViewController

【讨论】:

我首先遇到了这个问题。谢谢回答。它有效

以上是关于将数据从子控制器传递到 PageViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何使用双向数据绑定将数据从子组件传递到父组件?

将值从子视图页面快速传递到 Pageview 控制器

将数据从子组件传递到父组件Angular4

如何将数据从子组件传递到父组件[Angular]

如何将数据从子视图传递到父视图到 SwiftUI 中的另一个子视图?

使用 asyncio.Queue 将数据从子进程安全地传递到异步任务