2017-03-28 6 views
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) 
    } 
} 

をビューを設定するコードをした、私は、サブビューを追加するために使用されているものコンテナビューを持っています。私の予想通り
result design

結果がありません:私は誰もが
main view

サブビューは、以下のように設計されたコンテナビューのフレームに対処するために背景を設定しました。 ContainerViewはどこかに行った(私は本当に知らない)、サブビューは上に移動します。 result view

私を助けてください。

答えて

1

contentViewフレームが間違った位置に設定されています。 あなたは、このコード行を移動する必要があります。

contentView.frame = self.containerView.bounds 

override func func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    contentView.frame = self.containerView.bounds 
} 
+0

で、結果は同じです。 viewDidLayoutSubviewsはviewDidAppearの前でも実行されます。 – duykaka

+0

これを読むようにしてください:https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html – iGenio

+0

@iGenoをありがとう。キーに子ビューコントローラが追加されていません。 – duykaka

関連する問題