2017-03-12 14 views
1

私はXcodeでxibファイルとして素晴らしいログインボックスを設計しました。ユーザーがアプリケーションのランディングページで「ログイン」をタップすると、ログインボックスがポップアップして情報を入力できるようにしたいと思います。ViewControllerで「ポップアップ」としてxibを表示するにはどうすればよいですか?

現時点では、私はxibsで作業しているので、これを表示するのが難しいです。どんな助けもありがとう。ログインボタンをIBActionから切り離した2番目のクラスを作成したため、私のIBActionが接続されていないようです。それを修正する方法についてはわからない。

ありがとうございます! Swift 3とXcodeの最新バージョンを使用します。

import UIKit 

class AuthMainViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 
    navigationController?.navigationBar.isHidden = true 
} 
} 

class loginClass: UIView { 

class func instanceFromNib() -> UIView { 
    return UINib(nibName: "LoginView.xib", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView 
} 

@IBAction func loginBtnTapped(_ sender: Any) { 
    let loginView = loginClass.instanceFromNib() 
    self.addSubview(loginView) 
    print("Login got pressed") 
} 
} 

答えて

2

問題は、UIKitを完全に正しく機能させるには不十分なビュー自体を処理するという点で問題があるということです。 完全に機能するのUIViewControllerを持つために、あなたはこの使用する必要があります。

  • 出現方法
  • 回転方法
  • の移行:のような、あなたは多くの局面では、誤動作を見つけることができ、他の方法がないと

    //adding UIViewController to another UIViewController: 
    addChildViewController(viewController) 
    view.addSubview(viewController.view) 
    viewController.view.frame = view.bounds 
    viewController.didMove(toParentViewController: self) 
    
    //removing UIViewController from another UIViewController: 
    viewController.willMove(toParentViewController: nil) 
    viewController.view.removeFromSuperview() 
    viewController.removeFromParentViewController() 
    

    を方法

  • レスポンダーチェーン
  • ナビゲーションconトローラ、タブバーコントローラのプロパティ

参考: https://developer.apple.com/reference/uikit/uiviewcontroller

あなたのコンテナビューコントローラは、子供のルートを追加する前に、自分自身と子ビューコントローラを関連付ける必要があり

「コンテナビューコントローラの実装」ビュー階層への表示

1

プロジェクトポップアップコントローラは、あなたがこのようにビューを追加することができます方法のカップルとのUIViewControllerのサブクラスでは:

self.popViewController = PopUpViewControllerSwift(nibName: "PopUpViewController", bundle: nil) 
self.view.addSubview(popViewController) 

あなたはPop up window in Swift OR Adding a subview using a XIB and Storyboardを作成する方法についてのチュートリアルを参照することができます

+0

これはトリックでした!あなたが答えたとき、私は実際それを調べていました。ありがとうございました。 –

+0

@JustinHodgesよろしく! –

+0

しかし、注意してください! - この回答は受け入れられるべきではありません。問題を完全に解決するものではありません。 UIViewControllerではなく、ビュー自体を追加するだけで済むので、多くのことがうまく機能しません。ここで出現方法、回転メソッドと他のいくつかのものは動作しません。私は正解を別に掲示します。 –

関連する問題