2016-05-09 11 views
2

Ich muss ein Pop-Over mit einem Tableview-Controller zeigen.Wie UITableViewController als UIPopover ViewController angezeigt wird

ich den folgenden Code bin mit dem Pop über

func showPopOver für die Präsentation() {

lassen secondStoryboard = UIStoryboard (Name: "Second", Bündel: nil)

viewObj = secondStoryboard.instantiateViewControllerWithIdentifier("ViewController") as! ViewController 
viewObj.modalPresentationStyle = UIModalPresentationStyle.Popover 
viewObj.preferredContentSize = CGSizeMake(400,500) 

let popoverPresentationController = viewObj.popoverPresentationController 
popoverPresentationController?.delegate = self 
popoverPresentationController?.sourceView = self.view //walletButton 
popoverPresentationController?.sourceRect = CGRectMake(0, button.frame.origin.y+100, 0, 0) 
presentViewController(viewObj, animated: true, completion: nil) 
} 

// MARK: - UIPopoverPresentationControllerDelegate-Methoden ... startet

wie UIViewController dann werde ich jetzt versucht, UITableViewController zu laden, aber es funktioniert nicht. UIPopover wird angezeigt, Tabellenansicht wird jedoch nicht angezeigt.

Bitte machen Sie mir Vielen Dank im Voraus-

Antwort

3
func showPopOver() { 

    let tableViewController = UITableViewController() 
    tableViewController.modalPresentationStyle = UIModalPresentationStyle.Popover 
    tableViewController.preferredContentSize = CGSizeMake(200, 250) 
    tableViewController.tableView=FontTable 

    presentViewController(tableViewController, animated: true, completion: nil) 

    let popoverPresentationController = tableViewController.popoverPresentationController 
    popoverPresentationController?.sourceView = sender as! UIButton 
    popoverPresentationController?.sourceRect = CGRectMake(0, 0, sender.frame.size.width, sender.frame.size.height) 
    popoverPresentationController?.delegate=self 
    popoverPresentationController?.permittedArrowDirections=UIPopoverArrowDirection.Up 
} 

func prepareForPopoverPresentation(popoverPresentationController: UIPopoverPresentationController) 
{ 
} 

func popoverPresentationControllerDidDismissPopover(popoverPresentationController: UIPopoverPresentationController) 
{ 
} 

func popoverPresentationControllerShouldDismissPopover(popoverPresentationController: UIPopoverPresentationController) -> Bool 
{ 
    return true 
} 
+0

Vielen Dank für Ihre Antwort. Ich habe den obigen Vorschlag ausprobiert, aber TableViewController in meinem Popover nicht bekommen. Ich rufe diesen showPopOver() in viewDidAppear anstatt der viewDidLoad an, jetzt zeigt er TVC in meinem Popover. – WeCan

+0

Ok Immer Willkommen –

+1

Ich rufe diese ShowPopOver() in ViewDidAppear anstelle der ViewDidLoad zusammen mit den oben genannten UIPopover Delegate Methoden dann zeigt TVC in meinem Popover. – WeCan