2011-12-15 40 views
1

我初始化一個活動指示器,並在一個按鈕按下動作,我開始動畫並調用下一個視圖來顯示。活動指示器不立即開始動畫

-(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]; 

} 

當我按下按鈕時,活動指示燈不會立即啓動。它在另一個視圖被調用時開始。指示器顯示一秒鐘,但按下按鈕時,需要一些時間才能加載另一個視圖。

我不知道爲什麼指標顯示一秒沒有開始。

+1

爲什麼添加兩次addviewcontroller?你可以嘗試用其他方法創建你的addviewcontroller。動作內部(downloadButtonPressed)簡單顯示指標。然後你可以執行一些延遲選擇器(`performSelector:withObject:afterDelay:`)。在該選擇器內部,您可以隱藏您的活動指示器並創建您的addviewcontroller。 – 2011-12-15 14:36:44

+0

@Flex_Addicted它和你和niko說的一樣。非常感謝...... – Bala 2011-12-15 14:48:49

回答

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兩次。一個通過將其添加爲實際視圖控制器的子視圖,另一個通過模態呈現另一個視圖控制器。你應該從這個函數中刪除一個語句。