2017-08-17 10 views
0

UIViewControllerにボタンを作成したいときに、ポップオーバー形式でUITableViewを表示するために押されたときにボタンを作成したいと思います。私が試してみると、私はポップオーバー形式でtableviewを見なければならないが、私はそれに自分のコンテンツを提示することができます。誰も正しくtableViewでポップオーバーを行う方法を知っていますか?あるいは誰もこの状況の例を持っていますか? (ボタンはUIBarButtonではなく、通常のUIButtonです)。私はこれを試してみました:ボタンでポップオーバービューを行い、tableView(ポップオーバー形式)を表示するにはどうすればよいですか?

import UIKit 

クラスStadisticViewController:のUIViewController、UIPopoverPresentationControllerDelegate {

var team: [Players] = [] 

override func viewDidLoad() { 
    super.viewDidLoad() 


} 


@IBAction func showPopoverTapped(_ sender: UIButton) { 
    self.performSegue(withIdentifier: "popSegue", sender: self) 
} 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "popSegue" { 
     let controller = segue.destination as! PopViewController 
     controller.popTeam = self.team 
     controller.popoverPresentationController!.delegate = self 
     controller.preferredContentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height - 65.0) 

    } 
} 


func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle { 
    return .none 
} 

}

+4

を行いたい場合は、正確に何をしようとしていると、任意のコードサンプルを提供してください。 –

答えて

0

あなたのビューコントローラ からポップオーバーを作成し、プラスアイコン をドラッグすることにより、そのポップオーバー上のアンカーポイントを追加します。 Popover From a UIView Controller and Button is Anchor

class ViewController : UIViewController , UIPopoverPresentationControllerDelegate { 


    @IBAction func showPopoverTapped(_ sender : UIButton) { 
     self.performSegue("identifier" , sender : self) 
    } 




override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "identifier" { 
     if let controller = segue.destination as? YourViewControllerClass { 
      controller.popoverPresentationController!.delegate = self 
      controller.delegate = self 
      controller.preferredContentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height - 65.0) 
     } 


    } 
} 

    func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle { 
    return .none 
} 

あなたがプログラムで

 else if senderTag == 2 { 



    let sliderViewController = storyboard?.instantiateViewController(withIdentifier: "BGPopover") as! AllDesignsViewController 
    sliderViewController.modalPresentationStyle = .popover 
    sliderViewController.preferredContentSize = CGSize(width: self.view.frame.width, height: 220) 

    let popoverMenuViewController = sliderViewController.popoverPresentationController 
    popoverMenuViewController?.permittedArrowDirections = .up 
    popoverMenuViewController?.delegate = self 
    // You Still Need Anchor point for popover i used bar button as popover anchor. you can use any other UI Element 
    // popoverMenuViewController?.sourceView = yourAnchorView 
    // popoverMenuViewController?.sourceRect = yourAnchorView.bounds 
    popoverMenuViewController?.barButtonItem = sideBarButton 

    present(sliderViewController, animated: true, completion: nil) 
} 
+0

それは私に知らせてくださいね、 –

+0

のためにいくつかの方法があるので –

+0

xcodeが定数 "コントローラ"にイニシャライザを必要としているので、試してみることはできません。私はコントローラを初期化する方法を知らない。助けてくれてありがとう。 –

関連する問題