如何获取故事板的字符串名称?

时间:2016-07-11 13:41:14

标签: ios swift storyboard

我已经看了下面的指导无效:

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")

我已经检查了&#34;文件检查员&#34;,&#34;快速帮助检查员&#34;,&#34;身份检查员&#34;,&#34;属性检查员&#34; ,&#34;尺寸检查员&#34;,甚至是&#34;连接检查员&#34;也没有运气。

当我在故事板上选择了一个视图控制器并试图找到当前故事板的名称时,我只能找到视图的故事板ID,而不是故事板的名称。

任何解决方案都会非常感激,否则我会尝试找到另一种方法来完成我的任务。

3 个答案:

答案 0 :(得分:3)

我的同事告诉我这是没有“.storyboard”扩展名的文件名。问候。

答案 1 :(得分:0)

请尝试以下可能对您有帮助的代码。

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

答案 2 :(得分: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
}