2016-07-11 4 views
0

私はすでに無駄に指導を次のように見てきました:ストーリーボードの文字列名を取得するにはどうすればよいですか?

How to know the current storyboard name?

私は、次の答えのオフに基づいて、リモート通知から私のストーリーボードを使用して、特定のビューコントローラを開くしようとしています:

Present specific view controller in didReceiveRemoteNotification with Swift

let mvc = MainViewController() 
    let storyBoardNameString = mvc.storyboard. //<-proposed solution? Nothing from auto complete shows up 
    let storyboard = UIStoryboard(name: storyBoardNameString , bundle: nil) 
    storyboard.instantiateViewControllerWithIdentifier("some-view-controller") 

私は "ファイルインスペクタ"、 "クイック・ヘルプ・インスペクター"、 "アイデンティティインスペクタ" をチェックしました、 "インスペクタ属性"、 「サイズインスペクタ」、さらには「コネクションインスペクタ」もあります。

私がストーリーボードのビューコントローラを選択して現在のストーリーボードの名前を見つけようとしたとき、私はストーリーボードの名前ではなく、ビューのストーリーボードIDしか見つけられませんでした。

解決策があれば幸いです。そうでなければ、私は自分の仕事を達成する別の方法を見つけようとします。

+4

'mvc'オブジェクトから' storyboard'を得ることができれば、その名前を付ける必要はありません。 – Fogmeister

+0

おそらく無意味な質問ですが、 'mvc'にアクセスするために' mvc'でviewControllerを使わなければならないと思いますか? –

答えて

1

私の同僚は、 ".storyboard"拡張子がないファイルの名前だと教えてくれました。よろしく。

+1

これは、既にストーリーボードのインスタンス化されたビューコントローラーがある場合は、ストーリーボードの名前が不要であるという事実は変わりません。 – Desdenova

+0

私は知っていますが、それはまだ元の質問に答える:) –

0

次のコードを試してみてください。

let mvc = MainViewController() 
let storyBoardNameString = mvc.restorationIdentifier!//it will give identifier 
let storyboard = UIStoryboard(name: storyBoardNameString , bundle: nil) 
storyboard.instantiateViewControllerWithIdentifier("some-view-controller") 
0

たぶん、私の答えは、あなたの質問に権利はありませんが、見て、それについて考えることができます。

ペイロード形式を作成し、特定のUIViewControllerを作成します。

let payload = ["storyboard" : "StoryboadNameYouWant", "viewcontroller" : "ViewControllerName", "parameters" : "YourParameters"] 


func handlePayload(payload: Dictionary<String, String>) { 
    let storyboard = UIStoryboard(name: payload["storyboard"]!, bundle: nil) 
    let vc = storyboard.instantiateViewControllerWithIdentifier(payload["viewcontroller"]!) 
    // present vc 
} 
関連する問題