2016-07-11 10 views
1

アラートには、カスタムビューが含まれています。このビューには、uitableviewが含まれていますか?Swiftでカスタム表示を使用する

UserInteractionはバックグラウンドでどこでも無効にする必要があります。行が選択されるとすぐに、アラートウィンドウは消えます。

let popup : PopupVC = self.storyboard?.instantiateViewControllerWithIdentifier("PopupVC") as! PopupVC 
let navigationController = UINavigationController(rootViewController: popup) 
navigationController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext 
self.presentViewController(navigationController, animated: true, completion: nil) 

これはエラーではなく、相互作用のない別のビューを示しています。

+0

のサブビューとして、すべてを追加することができ、あなたがしようとしているコードを投稿することができますか? –

+0

私は今追加しましたが、新しいビューコントローラをインスタンス化したくないということがあります。もし私のカスタムビューでuiAlertViewを使用できるようにしたいのですが。 @RomanSausarnes –

答えて

-1

いいえ、UIAlertController行動を交換することはできませんが、あなたはそれを拡張することができます。

extension UIAlertController { 
    static func showCustomAlert() { 

    } 

    static func showCustomAlert(data: [AnyObject]) { 

    } 
} 

カスタムビューコントローラを呼び出すことができます最初の関数内。また、2番目のビューでは、カスタムビューコントローラが表示するデータを必要とするテーブルビューを表示する場合など、いくつかのデータを渡すことができます。アラートを表示する必要がある場合

だから、あなただけ行うことができます。

UIAlertController.showCustomAlert() 

注意をstaticキーワードは、あなたがUIAlertControllerのインスタンスを作成せずに関数を呼び出すことができること。

+0

'UIAlertView'はiOS 8以降廃止予定です。代わりに 'UIAlertController'を使用してください。 – FelixSFD

+0

はい、タイプミスです。コードを更新しました。しかし、とにかく私は、提案された解決策が彼が必要とするものについて説明していると信じています。 –

0

デフォルトのUIAlertControllerを変更することはできません。しかし、たとえばSDCAlertViewを使用することができます。これは、基本的に組み込みのように見えるカスタムUIAlertControllerを作成しますが、コンテンツビューを編集することはできます。 (Readmeファイルからコピー)

例:

let spinner = UIActivityIndicatorView(activityIndicatorStyle: .Gray) 
spinner.translatesAutoresizingMaskIntoConstraints = false 
spinner.startAnimating() 

let alert = AlertController(title: "Title", message: "Please wait...") 
alert.contentView.addSubview(spinner) 

spinner.centerXAnchor.constraintEqualToAnchor(alert.contentView.centerXAnchor).active = true 
spinner.topAnchor.constraintEqualToAnchor(alert.contentView.topAnchor).active = true 
spinner.bottomAnchor.constraintEqualToAnchor(alert.contentView.bottomAnchor).active = true 

alert.present() 

あなたは基本的にalert.contentView

関連する問題