Я подпрыгиваю в довольно странной проблеме. Когда я выталкиваю определенный контроллер вида для другого, первый увольняется вскоре после его показа. Когда я нажимаю его на главный контроллер просмотра, он остается без проблем. Я поставил точки останова, и 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, и он никогда не был достигнут.
Единственный своеобразный вопрос в том, что в модели я выполнить переход на основной контроллер вместо фактического управления этим фрагментом кода:
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. –