2017-08-17 34 views
0

我想在UIViewController上创建一个按钮,并按下时显示一个UITableView的popover格式。当我尝试时,我必须看到popover格式的tableview,但我可以在其上呈现我的内容。任何人都知道如何正确使用tableView做一个popover?或者有没有人有这种情况的例子? (该按钮不是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说,常量“控制器”需要一个初始化。我不知道如何初始化控制器。谢谢您的帮助。 –

相关问题