ここには、左側のプロファイル(ProfileViewController)と右側のContainerView(ContainerViewController)を持つ私のアプリケーションがあります。私が達成しようとしているのは、containerViewControllerがその仕事をしたら、UIViewの高さを更新することです。コンテナビューの高さを変更する
// ContainerViewController.swift
let heightConstraint = self.view.constraints.filter { $0.identifier == "Height" }.first
heightConstraint?.constant = height
制約のリストを参照するとき、彼らはすべてのemtpyだ、と私はストーリーボードにいくつかの制約を設定しました。なぜ ? ContainerViewController内のUIViewにアクセスする方法はありますか?
シモンズ:
DispatchQueue.main.async {
self.view.frame = CGRect(x: 0, y: 0, width: width, height: height)
}
が動作するように聞こえるが、私はそれは制約が適切である修正と思いますか?いいえ?
containerViewControllerで制約のIBOutletを設定できません。これはProfileViewControllerでリンクするときにのみ機能します。これはプロトコルを使用することを意味し、containerViewControllerはbaseController(ProfileViewController)を更新します。すべてのコントローラを独立させ、実際にIBouletをcontainerViewControllerにリンクする他の方法はありますか? – Alex
containerViewControllerの中に制約がある場合、それはうまくいくはずですが、ProfileViewControllerに制約があり、containerViewControllerだけを調整している場合です。 (ストーリーボードツリーを見る)。ビューが初期化された後、ProfileViewControllerからcontainerViewControllerに制約を渡すことができます –