2017-05-06 105 views
0

CalViewController:迅速准备Segue公司不工作

let brain =CalculatorBrain() 
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    let graph = GraphController() 
    graph.brain.record = brain.record 
} 

GraphViewController:

var brain = CalculatorBrain() { 
    didSet { 
     draw.variables = ["M": 1] 
     let value = brain.evaluate(using: draw.variables) 
     print(value) 
//at that time outlet didn't set it prints the value work just fine 
    } 
} 

@IBOutlet weak var graphView: GraphView! { 
    didSet { 
     draw.variables = ["M": 1] 
     let value = brain.evaluate(using: draw.variables) 
     print(value) 
//when outlet got set it not working it print nothing 
} 
} 

我只是想不通为什么和如何解决这个 任何想法会感激

+0

你可以详细说明:什么是不工作,什么是应该工作。即使被称为“准备”? – Lepidopteron

+0

@Lepidopteron已经解决了〜(斯科特的回答)〜谢谢关心 – jin

回答

1

UIStoryboardSegue包含您在destination property中过渡到的实际视图控制器。不是将数据传递给该视图控制器,而是将其传递给您在prepareForSegue中创建的全新视图控制器(其中一个在您离开该函数时会立即删除)。

你可能想沿着线的东西:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if let graph = segue.destination as? GraphController { 
     graph.brain.record = brain.record 
    } 
} 

我打字,没有一个编译器的好处,所以你可能需要调整它。

+0

非常感谢你〜它的工作原理 – jin