在我的视图控制器中,我有一个方法-(void) showDescription: (id) description
,女巫做了两件事:
- 在标签中显示描述
- 并在视图中运行一个为视图提供 setNeedsDisplay 的方法。
现在这是奇怪的事情:
如果我从代码中的另一个方法调用 showDescription,它会转到 showdescription(我有一个 NSLog),读取描述 OK(另一个 NSLog),但不会更改标签或使用setNeedsDisplay
(没有 NSLog)运行视图方法。
但是...如果我从按钮调用相同的方法,它就可以正常工作:放置 label.text 并重绘我的视图。
showDescription
当我在视图方法中放置两个断点时,我实现了相同的行为。在第一种情况下,它不会转到视图方法,而在第二种情况下(UIAction)它会。
这有多奇怪?有人知道为什么吗?因为我迷路了……
非常感谢
克莱姆科尔
类:
- GraphViewController:UIViewController
- 图形视图:UIView
** GraphViewController.m * ** * ***
-(void) showDescription: (id) description
{
NSString* text= [(NSString*) description copy];
self.lableDescription.text=text; //display description in label
[self.graphView redrawView];
}
-(void)displayGraph
{
NSLog(@"GraphViewController.displayGraph");
NSLog(@"self.programData %@",self.programData); //these work fine
NSLog(@"description lable %@",self.programDescriptionData);
[self showDescription:self.programDescriptionData];
[self.graphView redrawView];
}
- (IBAction)redraw {
NSLog(@"IBAction redraw");
NSLog(@"myData %@",self.graphView.myData);
[self showDescription:@"CCCC"];
[self.graphView redrawView];
}
图视图.m * **
-(void)redrawView //public method
{
NSLog(@"redrawView");
[self setNeedsDisplay];
}
我在 Lion 10.7.4 上使用 Xcode 4.3.3
这是发生的事情:
如果我调用 displayGraph,programData 和 programDescriptionData 很好。(NSLog 正确显示它)但是......它不会更改标签,也不会转到 redrawView(没有 NSLog redrawView)。
Here is the log:
2012-07-08 12:29:19.193 CalculatorGraph[2641:f803] GraphViewController.displayGraph
2012-07-08 12:29:19.194 CalculatorGraph[2641:f803] self.programData (
22
)
2012-07-08 12:29:19.194 CalculatorGraph[2641:f803] description lable 22
2012-07-08 12:29:19.195 CalculatorGraph[2641:f803] text is 22
现在,如果我按下按钮,一切似乎都可以工作:更新标签并重绘视图和视图中的 drawRect。看到我的问题了吗?
2012-07-08 14:16:54.358 CalculatorGraph[2743:f803] IBAction redraw
2012-07-08 14:16:54.358 CalculatorGraph[2743:f803] myData <GraphViewController: 0x6d3f1f0>
2012-07-08 14:16:54.359 CalculatorGraph[2743:f803] text is CCCC
2012-07-08 14:16:54.359 CalculatorGraph[2743:f803] redrawView
2012-07-08 14:16:54.360 CalculatorGraph[2743:f803] redrawView
2012-07-08 14:16:54.362 CalculatorGraph[2743:f803] graphView.drawRect
2012-07-08 14:16:54.363 CalculatorGraph[2743:f803] data in graphView DrawRect is: <GraphViewController: 0x6d3f1f0>
我的故事板的屏幕截图:请参阅我评论中的链接...
谢谢