0
アプリが起動すると、このメソッドを使ってルートビューコントローラを設定します。メインビューコントローラで素早いサブビューは親ビューをいっぱいにしません
func showRootViewController() {
let sb = UIStoryboard.init(name: "Main", bundle: nil)
let mainViewController = sb.instantiateInitialViewController()!
self.window?.rootViewController = mainViewController
self.window?.makeKeyAndVisible()
}
、私はビューを見てみましょうコンテナビューに
class MainViewController: UIViewController {
@IBOutlet weak var headerView: UIView!
@IBOutlet weak var containerView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if(userManager.hasRegistered()) {
let sb = UIStoryboard.init(name: "Login", bundle: nil)
self.setContentViewController(sb.instantiateInitialViewController()!)
} else {
let sb = UIStoryboard.init(name: "Registration", bundle: nil)
self.setContentViewController(sb.instantiateInitialViewController()!)
}
}
func setContentViewController(_ contentViewController: UIViewController) {
print(self.containerView.frame)
let contentView = contentViewController.view!
contentView.frame = self.containerView.bounds
self.containerView.addSubview(contentView)
}
}
をビューを設定するコードをした、私は、サブビューを追加するために使用されているものコンテナビューを持っています。私の予想通り
結果がありません:私は誰もが
サブビューは、以下のように設計されたコンテナビューのフレームに対処するために背景を設定しました。 ContainerViewはどこかに行った(私は本当に知らない)、サブビューは上に移動します。
私を助けてください。
で、結果は同じです。 viewDidLayoutSubviewsはviewDidAppearの前でも実行されます。 – duykaka
これを読むようにしてください:https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html – iGenio
@iGenoをありがとう。キーに子ビューコントローラが追加されていません。 – duykaka