
[code]

    @objc private func didTapRegister() {
        let vc = RegisterViewController()
        vc.title = "Create Account"
        navigationController?.pushViewController(vc, animated: true)
    
[/code]


CC BY-SA 4.0
2022-04-29T12:48:23.340
88567
2022-04-30T05:46:45.937
52406
question
swift
navigationController?の「?」の意味

[code]

    navigationController?.pushViewController(vc, animated: true)
    
[/code]

これは、 **Optional Chaining** と呼ばれるSwiftの構文のひとつです。

[Optional Chaining - The Swift Programming
Language](https://docs.swift.org/swift-
book/LanguageGuide/OptionalChaining.html)

Swiftには、そのまま書こうとすると複数行になる、そこそこ複雑な処理を、1行に短縮してしまう構文がいくつもあり、Optional
Chainingはそのひとつです。上の1行を、Optional chainingを使わずに書くと、このようになるでしょう。

[code]

    if navigationController != nil {
        let navigation = navigationController!
        navigation.pushViewController(vc, animated: true)
    }
    
[/code]

日本語で書くなら、「もし`UIViewController`のプロパティである`navigationController`の値が`nil`でなければ、`navigationController`をUnwrapし、`UINavigationController`のメソッド`pushViewController`〜を実行する」となるでしょう。


CC BY-SA 4.0
2022-04-30T05:46:45.937
88582
2022-04-30T05:46:45.937
18540
88567
answer