我初始化一个活动指示器,然后在一个按钮按下动作中,我开始动画并调用下一个视图进行显示。
-(IBAction) downloadButtonPressed:(id)sender {
NSLog(@"Download Button Pressed");
indicator.hidden = NO;
[indicator startAnimating];
if (addviewcontroller == nil)
addviewcontroller = [[AddViewController alloc]init];
[self.view addSubview:addviewcontroller.view];
[addviewcontroller setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:addviewcontroller animated:YES];
}
按下按钮时,活动指示灯不会立即启动。它在调用另一个视图时启动。指示器显示一秒钟,但是当按下按钮时,需要一些时间来加载另一个视图。
我不知道为什么指示器会在没有启动的情况下显示一秒钟。
答案 0 :(得分:7)
试试这个:
-(IBAction) downloadButtonPressed:(id)sender
{
NSLog(@"Download Button Pressed");
indicator.hidden = NO;
[indicator startAnimating];
[self performSelector:@selector(showController) withObject:nil afterDelay:0.1f];
}
- (void)showController {
if (addviewcontroller == nil)
addviewcontroller = [[AddViewController alloc]init];
[self.view addSubview:addviewcontroller.view];
[addviewcontroller setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:addviewcontroller animated:YES];
}
应该这样做; - )
修改的
我刚注意到您的代码存在问题,您要添加addviewcontroller
两次。一个是将其添加为实际视图控制器的子视图,另一个是通过模态呈现另一个视图控制器。您应该从此函数中删除其中一个语句。