質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2369閲覧

storyboard?.instantiateViewControllerWithIdentifierについて

Blue0999

総合スコア148

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/03/19 11:45

参考書のサンプルアプリを作っているのですが、わからないプロパティ(?)があったので質問させていただきます。
下記のコードが全体なのですが
if let nextQuestionViewController = storyboard?.instantiateViewControllerWithIdentifier("question") as?QuestionViewController{
nextQuestionViewController.questionDate = nextQuestion
self.presentViewController(nextQuestionViewController, animated: true, completion: nil
}
具体的にはstoryboard?.instantiateViewControllerWithIdentifier????こいつです。これは何を表すのでしょうか?
また引数にはどういった意味があるのでしょうか?
できるだけ詳しく教えてください!!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

storyboard変数はUIViewControllerに定義されている変数です。

@available(iOS 5.0, *)
public var storyboard: UIStoryboard? { get }

swift

1// storyboard?は現在このViewConrollerが配置されているStoryboardを指します 2// ※storyboardに配置されているとは限らなく、取得できない場合があるのでOptional Chainingの『?』になっています 3 4// instantiateViewControllerWithIdentifierは以下のように定義されていて 5public func instantiateViewControllerWithIdentifier(identifier: String) -> UIViewController 6 7// storyboardのViewControllerに付けられたStoryboard IDを指定してそのUIViewConrollerを返します。 8// そのViewConrollerが取得出来た時にifの中に入りそのViewControllerに対してデータを設定しています。 9 10if let nextQuestionViewController = storyboard?.instantiateViewControllerWithIdentifier("question") as? QuestionViewController { 11 nextQuestionViewController.questionDate = nextQuestion 12 self.presentViewController(nextQuestionViewController, animated: true, completion: nil) 13}

Storyboard名を指定してStoryboardを取得する場合は以下になります。
var storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())

iamge

★ Optional Chainingについては以下を一読ください。
[Swift] Optional 型についてのまとめ Ver2 - Optional Chaining

投稿2016/03/19 12:20

編集2016/03/19 12:35
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Blue0999

2016/03/20 04:59

親切に解説していただきありがとうございます! storyboard?.instantiateViewControllerWithIdentifierの意味がわかりました。 またOptional型にはそのような書き方もあるのですね、とても勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問