present(navVC, animated: true, completion: nil)
上記コードのcompletion: nil
はどのような意味を持っているのでしょうか。
画面遷移が完了後、何もしなくてもいいよー。という感じでしょうか。
ネットで調べても検索にかからない状態です。
ご教授頂けると嬉しいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
公式マニュアルによれば
Presents a view controller modally.
Swift
1func present(_ viewControllerToPresent: UIViewController, 2 animated flag: Bool, 3 completion: (() -> Void)? = nil)
と定義されています。
3つ目の引数completion:
の後には、引数がなく、戻り値が Void
型のクロージャを指定できるのですが、クロージャを指定する代わりに nil
を指定することも可能です。
内部では
Swift
1 completion?()
のような形で呼び出しが行われるのですが、completion
が nil
の場合、それは「インスタンスが存在しない」ことを意味するため、結果何も実行されません(これは、completion
の型宣言で (() -> Void)?
と宣言されていることとも関連します)。
なので、雰囲気としては
画面遷移が完了後、何もしなくてもいいよー。という感じでしょうか。
という感じになりますし、画面遷移後(正確にはUIViewController
から派生したクラスを表示させたあと)になんらかの処理を行わせたい場合には、ここにその処理を記述したクロージャを指定するなり、メソッドを渡すなりの処理が必要となります。
投稿2021/03/18 09:54
総合スコア5086
0
ベストアンサー
投稿2021/03/18 09:39
編集2021/03/18 09:43総合スコア441
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/18 09:57
2021/03/19 09:50
2021/03/19 11:35
2021/03/19 12:31
2021/03/19 14:47
2021/03/21 03:51
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/19 09:54
2021/03/19 09:57
2021/03/19 10:41
2021/03/19 11:19
2021/03/21 03:54 編集