使用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)
答案 0 :(得分:0)
您与其他时间推送同一实例无关的异常。那么你可能是以编程方式添加一些约束,并且它也被添加到viewDidLoad / viewWillAppear / viewDidAppear中,因为这可以从你获得的异常中理解:
Impossible to set up layout with view hierarchy unprepared for constraint.
如果是这样,那么你需要将它添加到updateViewConstraints()
中,当视图控制器的视图需要更新其约束时调用,或者viewWillLayoutSubviews()
内部。{/ p>