【发布时间】:2015-06-18 14:28:49
【问题描述】:
我有 2 个类,第一个类名为“store”,我在其中创建了一个调用方法的按钮:“storeSelected” 位于第二个类中,名称为 ExploreViewController。
该方法应该打印“完成”并将我带到另一个视图控制器。
如果没有打印“完成”的 segue,但是在放置 segue 代码时,应用程序会崩溃。
错误是:Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<Glam.ExploreViewController: 0x14ed3be20>) has no segue with identifier 'ok''
.........
// ExploreViewController Class
let _sharedMonitor: ExploreViewController = { ExploreViewController() }()
class ExploreViewController: UIViewController, UIScrollViewDelegate {
class func sharedMonitor() -> ExploreViewController {
return _sharedMonitor
}
func storeSelected(sender: UIButton) {
println("done") // it entered here and "done" is printed
self.performSegueWithIdentifier("ok", sender: self) //here is the problem
}
}
// another class named "Store"
// button is created
let monitor = ExploreViewController.sharedMonitor()
btn.addTarget(monitor, action: Selector("storeSelected:"), forControlEvents: UIControlEvents.TouchUpInside)
【问题讨论】:
-
你确定有一个手动的segue,标识符“ok”链接到你的
ExploreViewController吗? -
是的,我有,例如,当我将 segue 放入 viewdidload 时它工作正常。 @Wezly
-
在
ExploreViewController中处理按钮事件是否有特定原因? - 我会从Store执行此操作,然后从Store添加第二个手动segue 到您想去的任何地方。 -
Store类是UIView类型的类,我可以在里面放segue代码吗? @Wezly
-
啊 - 我不知道。你应该在当前可见的 View Controller 中处理 segue,我假设你的
Store对象在某个地方?
标签: ios objective-c swift ios8 segue