我在一個相當奇怪的問題中彈跳。當我爲另一個視圖控制器推送一個特定的視圖控制器時,前者在被顯示後不久就被解僱。當我將其推向主視圖控制器時,它保持不變。我把斷點和viewDidDisappear實際上叫做viewDidAppear之後。 通過嗅覺,它看起來像第二個視圖控制器成爲零的一種方式,但如果這是連接到故事板如何可能? 有沒有人知道可能是什麼原因的怪異行爲? 主視圖控制器和第一個視圖控制器都在Swift中,推送的控制器仍然在Objective-c中。 這是我打開第二個視圖控制器:ViewController在UINavigationController中被推入後立即彈出
func didSelectRow(indexPath: NSIndexPath, from owner: DestinationsViewController){
if let currentElement=DestinationsContentProvider.sharedContentProvider().stations[indexPath.row]{
print("a \(indexPath.row) elemento \(currentElement)")
let targetModel = currentElement.model
//NSLog(@"targetMetro:%@ targetPaletta=%@", owner.targetMetro, owner.targetPaletta);
if ((targetModel != nil) && (targetModel!.myTraffic != nil)){
targetModel!.segueExecute()
}
}
segueExecute被稱爲在未駁回了模型。我在dealloc上放了一個斷點,它從來沒有達到過。
唯一特殊的問題是,在模型中我通過這段代碼執行主控制器,而不是實際控制人對SEGUE:
mapController.performSegueWithIdentifier("ShowWaiting", sender:self)
仍然是相同的行爲發生,即使我手動推控制器通過執行:
let mainStoryboard:UIStoryboard!
if (UIDevice.currentDevice().userInterfaceIdiom == .Pad){
mainStoryboard=UIStoryboard(name:"StoryboardiPad", bundle: nil)
} else {
mainStoryboard=UIStoryboard(name:"MainStoryboard_iPhone", bundle: nil)
}
let controller = mainStoryboard.instantiateViewControllerWithIdentifier("Situation") as! StationSituation
controller.model=targetModel;
InArrivoHDViewController.sharedDetailController().navigationController?.pushViewController(controller, animated: true)
而不使用segue構造。
不完全,我添加了觸發segue的代碼片段。 –