iOS 14からのUIActionを使ってUIViewControllerのUINavigationItemの右にボタンを追加する短い例。
とにかくボタンを置いてアクションを記述するだけの例
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.rightBarButtonItem = .init(
title: "ボタン名",
image: nil,
primaryAction: .init { _ in
print("タップされた")
},
menu: nil
)
}
なんとなく覚えててググると、ぐちゃっと説明を読まされるが自分はこれで思い出せる。さらに調べたければXcode上で定義にジャンプすればいい。
SwiftUIのViewを呼び出す例
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.rightBarButtonItem = .init(
title: "ボタン名",
image: nil,
primaryAction: .init { [weak self] _ in
let viewController = UIHostingController(rootView: SampleView())
self?.present(viewController, animated: true)
},
menu: nil
)
}
import SwiftUI
struct SampleView: View {
var body: some View {
Text("Hello, World!")
}
}
SwiftUI.ViewをUIViewControllerに変換してとりあえず表示。