5

「+」をクリックすると、右の BarButtonItem の下にメニュー (ポップオーバー) が表示され、2 つのオプションが表示されます。これらのオプションのいずれかを押すと、他のビュー コントローラーが表示されます。

Xcode 10 と Swift 4.2 を使用しています。

ここに画像の説明を入力

このような: ここに画像の説明を入力

これは今のところ私のコードであり、何も起こりません。私は何を間違っていますか?別の方法で書くことはできますか?

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
    }

}
4

1 に答える 1