2013-06-04 57 views
2

在我正在開發的應用程序中,我顯示了一個UIAlertView。使用NSTimer我刪除了調用方法removeFromSuperView的警報。該警報已被刪除,但隨後任何控件都可以在當前視圖上運行。任何人都可以幫助我如何解決它?這裏是我的代碼顯示警報:如何從主視圖中刪除UIAlertview

UIAlertView *alert=[UIAlertView alloc]initWithTitle:@"A" message:@"B" delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil]; 
     [alert show]; 
     [alert release]; 
[NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(removeAlert:) userInfo:nil repeats:NO]; 

而該定時器調用的方法:

-(void)removeAlert:(id)sender 
{ 
    [alert_View removeFromSuperview]; 
} 
+0

你可以發佈一些代碼我的朋友創建您的警報即時全球性的? – NiravPatel

+0

sdk:軟件開發工具包。我不認爲這就是你在這裏的意思。請明確問題。你可以使用編輯選項來修改問題 –

+1

顯示一些代碼。 – Dilip

回答

12

請嘗試以下一行代碼

[alert dismissWithClickedButtonIndex:0 animated:YES]; 

ÿ我們的問題就會解決

+0

該alertview上沒有按鈕。 – user811598

+2

這條線是正確的。你不需要任何按鈕來執行這個動作。在它的超級方法中,它將關閉視圖並重新設置「模式」標誌,所以您的其他視圖也可以再次啓用用戶交互:) – geo

+1

@ user811598:不需要任何按鈕只需放入此代碼即可。而不是[alert_View removeFromSuperview]; – Pratik

0

使用[alert dismissWithClickedButtonIndex:-1 animated:YES];代替[alert removeFromSuperView];)這是一個模式的看法,所以你不僅要解僱和除去:)

2

通過啓動它在.h文件中

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController<UIAlertViewDelegate> 
{ 
    UIAlertView *alert; 
} 

然後在.m文件

//here use that instant variable alert 
alert=[[UIAlertView alloc]initWithTitle:@"A" message:@"B" delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil]; 
    [alert show]; 
    [NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(removeAlert:) userInfo:nil repeats:NO]; 

-(void)removeAlert:(id)sender 
{ 
    NSLog(@"hi dilip"); 
    [alert dismissWithClickedButtonIndex:0 animated:YES]; 
}