将数据从ViewController(非详细信息)传递到UISplitView Swift中的MasterViewController

时间:2016-10-11 21:51:03

标签: swift uiviewcontroller uisplitviewcontroller pass-data

如何在UISplitView中将数据从ViewController(VC)传递到MasterView(MV)?我发现我不能使用segue,因为它从VC到SplitView,而不是MV。 请查看下面的图片

screenshot of storyboard

UPD:

谢谢Stepan的帮助,我已经想通了。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == "toMessurementVM"{
    let splitVC = segue.destinationViewController as! UISplitViewController
    let navVC = splitVC.childViewControllers.first as! UINavigationController
    let vc = navVC.childViewControllers.first as! MessurementTagsTableView
    vc.ingredient = passingIngredient
    }
}

我不确定这是正确的方法,但它确实有效。 有很多例子说明如何将数据从Detail传递给Master,反之亦然,但我的情况并没有。

由于

1 个答案:

答案 0 :(得分:0)

1)不传递数据!只需使用指针。

2)您可以通过SplitViewControllerMasterView

获取超级视图ViewController

3)在您需要的控制器中注册通知,然后只发送一些数据就绪的通知。

4)在目标控制器上捕获你的通知 - 只需用指针获取数据,从控制器获取superview,将其转换为SplitViewController,然后你可以从中获取master或detail,没有问题,然后获取数据从它指针。

5)使用调试器停止并查看你在superview中的内容,然后你将知道确切的行为方式)

6)确保在主线程上调用所有UI操作。