调用故事板场景而不在swift中创建segue?

时间:2015-05-31 05:34:48

标签: ios swift uiviewcontroller segue

我创建了一个场景并试图将类链接到场景并使用故事板创建一个segue并使用self.performSegueWithIdentifier("SegueID", sender: self)并且无论我做了什么(即干净的构建)我仍然得到相同的错误 “原因:'Receiver()没有标识符'SegueID''”

的segue

我认为解决这个问题的最佳方法是在这个实例中避免segue。

那么有没有办法从代码中的视图调用转换到另一个视图而不在swift中使用segue?

修改 我已经尝试了所有三种方式但无济于事。在故事板中两个场景之间创建一个segue并给它命名的最常见方式,在我的案例“详细信息”中,但是segue无法识别。

所以我尝试了从笔尖加载它的下一种方法,然后将该笔尖推入导航堆栈,但是在编译和构建程序时,我点击按钮呈现给新的视图控制器,除了函数println执行。

尝试手动使用目标控制器只是不起作用。 instantiateViewControllerWithIdentifier需要一个字符串并抱怨调用中有太多参数

1 个答案:

答案 0 :(得分:3)

您的代码无效,因为您需要在故事板中设置一个带有特定ID的segue,并在调用performSegueWithIdentifier时将其作为参数传递。因此,在您的情况下,您需要创建ID为"SegueID"的segue,因为这是您传递给该调用的字符串。

如果您不想使用故事板进行此操作,您仍然可以直接使用UINavigationController(毕竟,segue使用了UINavigationController

然后您只需手动实例化目标视图控制器(例如,使用

self.storyboard.instantiateViewControllerWithIdentifier(<your vc id from the storyboard>, animated:true) 

或从笔尖加载

init(nibName:bundle:)

然后使用

将其推送到导航堆栈
self.navigationController.pushViewController(<the formerly instantiaded vc>)