私はSwiftでカスタムアラートビューコントローラを開発しようとしています。私はAlertViewControllerのために私のストーリーボードにUIViewController
を作った。次に、私はそれを表示する必要があるとき、私は次のことを行います:元のビューと同じ大きさのサブビューを元のビューに追加し、不透明な背景を作成します。そのビューに2番目のサブビューを追加してAlertViewController.view
を表示します。以下は、AlertViewを表示するために使用するコードです。UIViewをプログラムで追加してUIViewControllerに接続しないのはなぜですか?
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("topicAlertView") as! EditTopicAlertViewController
let alertView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height))
alertView.backgroundColor = UIColor(colorLiteralRed: 23/255.0, green: 62/255.0, blue: 67/255.0, alpha: 0.75)
let alertBox = UIView(frame: CGRect(x: alertView.bounds.size.width/2.0 - 150.0, y: alertView.bounds.size.height/2.0 - 100.0, width: 300, height: 200))
alertBox.addSubview(vc.view)
alertView.addSubview(alertBox)
これは正常に動作し、アラートビューが正しく表示されます。ただし、UIViewController
に「EditTopicAlertViewController」と全く接続されていないようです。たとえば、私は、それに接続されたアクションで、それがすべてで呼び出されていないというボタンをキャンセルしている、またvc.cancelButtonはnil
を返すので、私は
vc.cancelButton.addTarget(self, action: #selector(EditTopicAlertViewController.cancelPressed(_:)), forControlEvents: .TouchUpInside)
を追加することができます。
私はこれをどのように修正することができますか考えている場合は、私に知らせることができれば本当に感謝します!前もって感謝します。私は、ビューを追加すると
「UIViewController」のドキュメントの「コンテナビューコントローラの実装」をお読みください。 – rmaddy