为什么再次访问视图时不调用awakeFromNib?

时间:2011-04-06 19:50:58

标签: iphone objective-c drawrect

我想知道是否有一个等同于awakeFromNib的方法。

我面临的问题如下:
我的应用程序有2个视图,第二个视图有一个子类(UIview),我用它来绘制 我使用一个从awakeFromNib调用的计时器,以便为绘图设置动画。

- (void) awakeFromNib
{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:selfselector:@selector(ReDraw) userInfo:nil repeats:YES];
}

- (void) ReDraw
{
    i++;
    [self setNeedsDisplay];
}

现在,当我回到第一个视图并返回到此视图时,绘图仍处于打​​开状态(不再调用awakeFromNib)。
当我回到第一个视图时,计时器不会停止。 我希望计时器在我返回时停止,并且当我再次访问第二个视图时绘图重新启动。

方法viewdidLoad和initWithFrame在子类内部不起作用。

谢谢

1 个答案:

答案 0 :(得分:1)

awakeFromNibviewdidLoadinitWithFrame都在对象的初始化阶段被调用。如果已创建对象,则不会再次调用这些方法。您可以使用视图的setNeedsDisplay方法强制视图绘制自己。