在 Swift 中以编程方式使用 segues 传递信息
Posted
技术标签:
【中文标题】在 Swift 中以编程方式使用 segues 传递信息【英文标题】:Passing information using segues programmatically in Swift 【发布时间】:2016-09-16 14:33:50 【问题描述】:我有这门课:
class ViewController: UIViewController
var keywords = []
...
和另一个班级:
class ExplorerViewController: UIViewController
func searchMapSegue()
let next = self.storyboard?.instantiateViewControllerWithIdentifier("MapViewController") as! ViewController
next.keywords = searchKeywordsArray
self.presentViewController(next, animated: false, completion: nil)
点击按钮即可调用 searchMapSegue()。
我正在尝试将 searchKeywordsArray 传递给 ViewController,但我得到了 EXC_BAD_INSTRUCTION。有人可以告诉我这里有什么问题吗?我没有使用故事板。
【问题讨论】:
在代码中你正在使用情节提要,在描述中你说“我没有使用情节提要”。这是什么意思? @NiravD 哦,对不起,我的意思是我没有使用 main.storyboard。我只是跟着这个:***.com/questions/31813942/…. 您在使用 XIb 吗? @NiravD 我现在不在。我应该吗? 您是否以编程方式生成设计? 【参考方案1】:您需要在这里考虑几件事。
1) 你当前的viewcontroller 和ExplorerViewController 在同一个storyborad 中?如果是,则可以使用 self.storyboard。如果不是,你不能使用 self.storyboard。
你需要使用下面的代码
let explorerViewController = UIStoryboard(name: NAME_OF_YOUR_STORYBOARD, bundle: nil).instantiateViewControllerWithIdentifier("ExplorerViewController") as! ExplorerViewController
2) 您是否正确设置了标识符?您需要设置标识符。请参阅随附的屏幕截图。
希望这能解决您的问题
【讨论】:
以上是关于在 Swift 中以编程方式使用 segues 传递信息的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 在 iOS 中以编程方式进行 segue
无法使用 Xcode 8 和 Swift 3 在 SpriteKit 中以编程方式触发 segue