0

在我的应用程序中,我在 View1 的视图 load() 中设置了一些动画,首先启动它的工作正常,如果我推入其他视图,并且当弹出到 view1 时它没有动画,当从其他视图弹出视图时我应该为动画做什么?这里我的观点确实加载了代码,

 - (void)viewDidLoad
{
artext=[[NSMutableArray alloc] init];
arimage=[[NSMutableArray alloc] init];
arsound=[[NSMutableArray alloc] init];

[super viewDidLoad];
[self copysqlitetodocuments];
[self Readthesqlitefile];   
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage     imageNamed:@"classroom.png"]];

}

我试过了

  - (void)viewDidAppear:(BOOL)animated
 {
 [self buttonmover];
 [super viewDidAppear:animated];
  }

它不起作用,任何人都可以帮我解决这个问题

4

3 回答 3

0

当您的 viewDidLoad 方法被调用时,控制器还没有在视图层次结构中,所以动画不起作用。

在实现方法[super viewWillAppear]之后,您必须在viewWillApper中执行动画。就像是:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    artext = [[NSMutableArray alloc] init];
    arimage = [[NSMutableArray alloc] init];
    arsound = [[NSMutableArray alloc] init];

    [self copysqlitetodocuments];
    [self Readthesqlitefile];   
    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"classroom.png"]];

}
于 2012-10-19T09:34:15.407 回答
0

尝试在 viewWillAppear 中

  -(void)viewWillAppear:(BOOL)animated
 {
  artext=[[NSMutableArray alloc] init];
  arimage=[[NSMutableArray alloc] init];
  arsound=[[NSMutableArray alloc] init];

  [self copysqlitetodocuments];
  [self Readthesqlitefile];   
  self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"classroom.png"]];

 }
于 2012-10-19T09:33:37.183 回答
0

如果您想在视图出现时执行代码(例如动画),-viewDidLoad那么这样做是错误的。

您可能应该使用:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    // ...
}
于 2012-10-19T09:32:13.443 回答