打开相同的View Controller

时间:2018-01-09 16:19:39

标签: ios viewcontroller swift4 xcode9

使用Xcode 9 / Swift 4,我有一个 tile应用程序(与Windows 10演示文稿相同)。

当用户在主视图控制器上并单击某个磁贴时,我想打开相同的视图控制器并设置parentId,以显示子磁贴。< / p>

App可以拥有无​​限数量的孩子。

但是,当我尝试将同一个View Controller推送到当前显示时,应用程序崩溃:

let vc = currentStoryboard.instantiateViewController(withIdentifier: "TileViewController") as! TileViewController

vc.parentId = id
vc.title = item.name

currentViewController.navigationController?.pushViewController(vc, animated:true)

1 个答案:

答案 0 :(得分:0)

您与其他时间推送同一实例无关的异常。那么你可能是以编程方式添加一些约束,并且它也被添加到viewDidLoad / viewWillAppear / viewDidAppear中,因为这可以从你获得的异常中理解:

Impossible to set up layout with view hierarchy unprepared for constraint. 

如果是这样,那么你需要将它添加到updateViewConstraints()中,当视图控制器的视图需要更新其约束时调用,或者viewWillLayoutSubviews()内部。{/ p>