【发布时间】:2015-10-12 21:15:29
【问题描述】:
几天来,我一直在努力使用 Swift 将数组从我的SecondViewController 传递给我的FirstViewController。
根据我的研究,我发现 segue 和 prepareForSegue 是一个可行的选择,但我似乎无法弄清楚。我做错了什么?
我在 SecondViewController 中的 prepareForSegue 如下所示:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var DVC: FirstViewController = segue.destinationViewController as! FirstViewController
DVC.mySeguedArray = myIncomeArray
}
我的 FirstViewController 看起来像这样:
class FirstViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
var myIncomeArray: [Income] = []
var mySeguedArray: [Income] = []
override func viewDidLoad() {
super.viewDidLoad()
myIncomeArray = mySeguedArray
}
另外值得一提的是,我确信我正在填充SecondViewController 中的数组,因为我正在通过在向其中添加新的Income 对象时打印出数组的大小来测试它。但是FirstViewController 中的数组在检查segue 之后的大小时只返回0。
编辑:添加了故事板的图片 StoryBoard
【问题讨论】:
-
什么是启动segue回到第一个vc?并且您之间是否有导航控制器,或者它是一个显示细节 segue 还是其他什么?
-
我现在尝试在情节提要上按 ctrl + 拖动,从 SecondViewController 上的添加按钮上的添加按钮到我的 FirstViewController,但它只能让我推动、模态和自定义。
-
push 没问题,但请确保在属性检查器中输入正确的 segue id
-
在按钮和 FirstViewController 之间创建推送后出现以下错误。
*** Terminating app due to uncaught exception 'NSGenericException', reason: 'Could not find a navigation controller for segue 'passArray'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.' -
在导航控制器中嵌入第一个vc