我在ViewControllerA中有一个集合视图,我使用didSelectItemAtIndexPath
来转换为ViewControllerB
。在我ViewControllerB
之后,我有另一个集合视图,我希望以与ViewControllerA
相同的方式使用新输入重新加载ViewControllerB
。我想这个问题非常简单,但我很新,并且花了很长时间试图解决这个问题。
ViewControllerA's
didSelectItemAtIndexPath
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let hero: Hero!
hero = heroes[indexPath.row]
performSegueWithIdentifier("HeroDetailVC", sender: hero)
}
ViewControllerA's
为Segue做准备
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "HeroDetailVC" {
if let detailsVC = segue.destinationViewController as? HeroDetailVC {
if let hero = sender as? Hero {
detailsVC.hero = hero
detailsVC.heroes = heroes
}
}
}
}
我认为问题在于viewDidLoad
ViewControllerB
viewDidLoad() {
super.viewDidLoad()
nameLbl.text = hero.name
}
中的对象"英雄"由于某种原因没有价值。我要求它有一个值来加载标签。
if let hero = sender as? Hero {
detailsVC.hero = hero
detailsVC.heroes = heroes
}
当我使用segue
时ViewControllerB
似乎从ViewControllerA
向let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("heroDetailVC") as UIViewController
self.presentViewController(viewController, animated: false, completion: nil)
获取了必要的信息,但是我无法弄清楚为什么视图控制器会失去对值的跟踪,或者在我尝试自我调整时忽略nil实例化。
我收到此错误:
"致命错误:在打开一个可选值"时意外地发现了nil。
我猜测对象英雄没有被传递。为什么Xcode不使用英雄的最后一个已知值而不是崩溃?
我甚至尝试使用以下
进行实例化ViewControllerA
但正如你所看到的,我不知道如何为英雄和英雄传递价值。
从ViewControllerA
- >构建segue时遇到类似的错误B但我能够通过右键单击ViewControllerB
并将手动触发的segue设置为ViewControllerB
来修复它。 Xcode不允许我拖放以将 gridCalculator : function(req,res){
// calculation logic
var options=[];
options.dateFirstLicensed = req.param('DateFirstLicensed');
options.dateFirstInsured = req.param('DateFirstInsured');
options.claimList = req.param('ClaimList');
options.suspenList = req.param('SuspenList');
...etc
连接到自身。我该怎么办?
答案 0 :(得分:0)
我找到了问题的答案。
let doesntMatter = self.storyboard?.instantiateViewControllerWithIdentifier("heroDetailVC") as! HeroDetailVC
doesntMatter.hero = heroesInSynergy[indexPath.row]
doesntMatter.heroes = heroes
self.presentViewController(doesntMatter, animated: true, completion: nil)
由于某种原因,我在实例化视图之前没有工作。我想我发现的代码很旧或者其他东西。
我只有以下1个问题。在多次实例化时,这会导致内存问题吗?