gpt4 book ai didi

ios - UITableViewController 作为下拉列表?

转载 作者:可可西里 更新时间:2023-11-01 02:19:39 24 4
gpt4 key购买 nike

我想创建一个 UITableViewController 作为单击 UIButton 时的下拉菜单。

我使用 addChildViewController 创建了一个,但我无法通过再次单击该按钮将其删除。

我使用的代码:

var flag = 0
func filter(sender: UIButton){
let _viewController = storyboard!.instantiateViewControllerWithIdentifier("UserViewController") as! UserViewController
if(flag == 1){
_viewController.willMoveToParentViewController(nil)
_viewController.removeFromParentViewController()

flag = 0
return
}

addChildViewController(_viewController)
_viewController.view.frame.origin.y = filterButton.frame.maxY
_viewController.view.frame.origin.x = self.view.frame.size.width-250
_viewController.view.frame.size.width = 250
_viewController.view.frame.size.height = 500
self.view.addSubview(_viewController.view)
flag = 1
}

最佳答案

您的案例很简单,因为您每次单击按钮时都在实例化 View Controller 。 您应该在 viewDidLoad 中实例化 _viewController。此外,您必须在删除时从 super View 中删除 View ,并在添加时将自己作为父 View 。

详情请引用此链接 How is a parent view controller notified that is's child view controller has removed itself? . 您的代码应如下所示,

var _viewController:UITableViewController!
var flag = 0
func filter(sender: UIButton){

if(flag == 1){
_viewController.willMoveToParentViewController(nil)
_viewController.view.removeFromSuperview()
_viewController.removeFromParentViewController()
flag = 0
return
}

addChildViewController(_viewController)
_viewController.view.frame.origin.y = filterButton.frame.maxY
_viewController.view.frame.origin.x = self.view.frame.size.width-250
_viewController.view.frame.size.width = 250
_viewController.view.frame.size.height = 500
self.view.addSubview(_viewController.view)
_viewController.didMoveToParentViewController(self)
flag = 1

}

override func viewDidLoad() {
super.viewDidLoad()
_viewController = storyboard!.instantiateViewControllerWithIdentifier("UserViewController") as! UserViewController

}

关于ios - UITableViewController 作为下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com