2017-11-02 10 views
0

タイトルのように、私はSwift 3.0を使用しているXcodeプロジェクトに取り組んでいます。私は、私の現在のビュー、ボタンをクリックして、ポップアップとして小さなビューを表示したいと思います。 このポップアップは、特定の配列内に多数のセルがある場合に1つのラベル+ 1つのテキストボックスを表示するテーブルビューになります。サイズは画面の一部に制限され、テーブルビューは当然スクロール可能です。プログラムでカスタムテーブルビューをポップアップとして作成

プログラムでビューを作成する方法を理解していますが、「hidden = true」という概念があります。私が本当に苦労しているのは、テーブルビューを取得することです。理論的には私のストーリーボードでビューをデザインすることができましたが、それを名前で参照してスーパービューを現在のビューに適用する方法がありますか?

ありがとうございました!

編集:私は限り、このコードのようになったいくつかの助けに

ありがとう:

@IBOutlet weak var CreatePost: UIButton! 
@IBAction func CreatePost(_ sender: Any) { 
    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let popVC = storyboard.instantiateViewController(withIdentifier: "CreateAccountPop") // your viewcontroller's id 
    popVC.preferredContentSize = CGSize(width: 500, height: 600) 
    popVC.modalPresentationStyle = .popover 
    let popover = popVC.popoverPresentationController 
    popover?.delegate = self as? UIPopoverPresentationControllerDelegate 
    //sourceRect and sourceView is required in case of iPad 
    popover?.sourceRect = (sender as AnyObject).frame //give anchor frame 
    popover?.sourceView = sender as! UIView //give anchor view 
    self.present(popVC, animated: true, completion: nil) 
} 

コードは、ビューコントローラが表示されますが、それは画面全体を占めます。サイズを制限する方法を理解できないようです。

+1

にご提示のViewControllerに準拠することを忘れないでください、あなたは代わりに新しいビューコントローラ内のテーブルビューを表示しようとしましたか? View Controllerをポップアップとして表示することもできます –

+1

そのような意味ですか? https://developer.apple.com/ios/human-interface-guidelines/views/popovers/ – lukwuerz

+0

はい、そのようなものです。 iPhoneでは、ポップアップのようになる –

答えて

1

ViewController(できればストーリーボード)をデザインし、ビューを不透明にします。選択したサイズのテーブルビューを追加します。

あなたはこの

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let popVC = storyboard.instantiateViewController(withIdentifier: "PopVC") // your viewcontroller's id 
popVC.modalPresentationStyle = .popover 
let popover = popVC.popoverPresentationController 
popover?.delegate = self 
//sourceRect and sourceView is required in case of iPad 
popover?.sourceRect = sender.frame //give anchor frame 
popover?.sourceView = sender //give anchor view 
self.present(popVC, animated: true, completion: nil) 

のようなポップオーバーを提示することができ、UIPopoverPresentationControllerDelegate

+0

これは機能しましたが、ビューコントローラは「ポップアップ」すると画面全体を占有します。コントローラーのサイズを制御するには –

+0

コントローラーのサイズを変更することはできません。代わりに、tableviewのサイズを変更してください。 –

関連する問題