Ios 单击按钮,在BarButtonItem下方显示下拉菜单(popover)
当我点击“+”时,我想在右按钮下显示菜单(popover),其中有两个选项。按其中一个选项将显示其他视图控制器 我使用的是Xcode 10和Swift 4.2 像这样: 这是我现在的代码,没有任何事情发生。我做错了什么?我可以用不同的方式写吗Ios 单击按钮,在BarButtonItem下方显示下拉菜单(popover),ios,swift,uibarbuttonitem,popover,rightbarbuttonitem,Ios,Swift,Uibarbuttonitem,Popover,Rightbarbuttonitem,当我点击“+”时,我想在右按钮下显示菜单(popover),其中有两个选项。按其中一个选项将显示其他视图控制器 我使用的是Xcode 10和Swift 4.2 像这样: 这是我现在的代码,没有任何事情发生。我做错了什么?我可以用不同的方式写吗 import Foundation class RootVC: UITableViewController { @IBOutlet weak var openSideMenu: UIBarButtonItem! let itemA
import Foundation
class RootVC: UITableViewController {
@IBOutlet weak var openSideMenu: UIBarButtonItem!
let itemArray = ["1", "2", "3"]
override func viewDidLoad() {
super.viewDidLoad()
openSideMenu.target = self.revealViewController()
openSideMenu.action = #selector(SWRevealViewController.revealToggle(_:))
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return itemArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "RootCell", for: indexPath)
cell.textLabel?.text = itemArray[indexPath.row]
return cell
}
@IBAction func addBarButtonPressed(_ sender: UIBarButtonItem) {
let menu = UIMenuController.shared
menu.menuItems =
[UIMenuItem(title: "Test me", action: Selector("deleteLine")),
UIMenuItem(title: "Test me", action: Selector("deleteLine")),
UIMenuItem(title: "Test me", action: Selector("deleteLine"))]
menu.setTargetRect((self.navigationItem.rightBarButtonItems?.first?.frame)!, in: self.view)
becomeFirstResponder()
menu.setMenuVisible(true, animated: true)
}
}
extension UIBarButtonItem {
var frame: CGRect? {
guard let view = self.value(forKey: "view") as? UIView else {
return nil
}
return view.frame
}
}
我使用辅助实验室/下拉式CocoaPods()解决我的问题 这是代码:
import Foundation
import DropDown
class ViewController: UIViewController {
@IBOutlet weak var addBarButton: UIBarButtonItem!
let rightBarDropDown = DropDown()
override func viewDidLoad() {
super.viewDidLoad()
rightBarDropDown.anchorView = addBarButton
rightBarDropDown.dataSource = ["Generate New", "Add Manual"]
rightBarDropDown.cellConfiguration = { (index, item) in return "\(item)" }
}
@IBAction func showBarButtonDropDown(_ sender: AnyObject) {
rightBarDropDown.selectionAction = { (index: Int, item: String) in
print("Selected item: \(item) at index: \(index)") }
rightBarDropDown.width = 140
rightBarDropDown.bottomOffset = CGPoint(x: 0, y:(rightBarDropDown.anchorView?.plainView.bounds.height)!)
rightBarDropDown.show()
}
}
你能看一下菜单吗controller@TobiUIMenuController?我没有,它必须在一个单独的类中吗?如果你想在你想要使用的组件上寻找更好的资源,它们不是
下拉列表
,但是@Hrvoje你可以在iPhone上的弹出窗口中显示你的模态视图控制器,但是你必须做更多的工作。这里有一个问题,你想实现什么