简体   繁体   中英

How to dismiss UIPopoverPresentationController on tap inside it. (iOS, Swift)

I've been successfully able to implement a popviewcontroller, which contains a tableview of 4 cells. I want to close the popViewController when the cell is selected, but I cannot seem to do this. In my tableViewController, I have a method inside didSelectRowAtIndexPath, which calls this MasterViewController's method "updateToSelectedTab". I am able to print out the indexpath of the selected cell here, but I cannot remove the popViewController when the cell is selected. How do I do this?

在此处输入图片说明

//Here is our MasterViewController class

@IBAction func pop(sender: AnyObject) {

    let contentView = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("popViewController") as! PopViewController
    contentView.modalPresentationStyle = UIModalPresentationStyle.Popover
    contentView.preferredContentSize = CGSizeMake(aButton.frame.width, 240.0)

    let popoverMenuViewController = contentView.popoverPresentationController!
    popoverMenuViewController.delegate = self
    popoverMenuViewController.permittedArrowDirections = UIPopoverArrowDirection.Any
    popoverMenuViewController.sourceView = view
    popoverMenuViewController.permittedArrowDirections = UIPopoverArrowDirection(rawValue:0)

    popoverMenuViewController.sourceRect = CGRectMake(aButton.frame.origin.x, aButton.frame.origin.y - 60, aButton.frame.width, aButton.frame.height)
    presentViewController(contentView, animated: true, completion: nil)
}

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return UIModalPresentationStyle.None
}

//This method is called from didSelectRowAtIndexPath of the View Controller that handles the UIPopoverPresentationController
func updateToSelectedTab(tab: Int){
    print("Current tab \(tab)")
    //Need to dismiss controller here

}

我要做的就是在索引路径委托方法的选择行中添加以下代码:

dismissViewControllerAnimated(true, completion: nil)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM