从父级访问容器视图

时间:2015-12-10 19:24:51

标签: ios swift uipageviewcontroller uicontainerview

我有一个带有嵌入式容器视图和控制器的View控制器

Container View托管UIPageViewController View控制器有一个按钮,如果点击它我想更新UIPageView控制器管理的当前显示页面中的标签

我正在使用这种方法获取ContainerView控制器

   @IBAction func sendButtonTouched(sender: AnyObject) {
        if let vc = self.childViewControllers.last as? ContainerViewController{
            vc.pageViewController.view.backgroundColor = UIColor.blueColor()

我获取UIPageViewController并设置颜色但不更新

如果深入兔洞以获取我当前查看的页面,我可以获取并设置所有值,但我的视图永远不会更新

我真正想做的就是这样的事情

 @IBAction func sendButtonTouched(sender: AnyObject) {
    if let vc = self.childViewControllers.last as? ContainerViewController{
        vc.pageViewController.view.backgroundColor = UIColor.blueColor()
        print("make it blue baby")
        if let pageItemController = vc.getCurrentViewController(){
            print(pageItemController.indexLabel.text)
            pageItemController.message = self.messageTextView.text
            pageItemController.messageImage.image = UIImage()
            pageItemController.reloadInputViews()
        }
    }
}

并在ContainerViewController中

 func getCurrentViewController()-> MIPViewController?
{
    print("\(self.pageViewController.viewControllers!.count) view controllers")
    if let vc = self.pageViewController.viewControllers!.first as? PageItemViewController
    {
        if vc.index < mipCount
            // must be a MIPViewController
        {
            return vc as? MIPViewController
        }
    }
    return nil
}

在我的控制台输出中,我看到了

make it blue baby
1 view controllers
Optional("This is a message of the number 0")
Optional("")

所以一切都被调用了,但是如上所述,没有任何视图可以更新

我可能在这里遗漏了一些非常基本的东西,谢谢你的帮助 我还检查了其他问题,例如Access Container View Controller from Parent iOS 但是使用childViewControllers的afaik也是有效的

0 个答案:

没有答案