2012-06-28 84 views
3

可能重複:
How to fire uibarbuttonitem click event programmatically如何以編程方式觸發uibarbuttonitem的動作?

我已經創建了一個uibarbuttonitem動態和它工作正常。我想以單元測試的形式編程式地觸發uibarbutton項目操作(單擊)。

即使代碼在應用程序代碼(而不是測試代碼)中記錄條形按鈕項的動作時正常工作,它也會給出空值。我使用的代碼如下所示。

NSLog(@"%@",NSStringFromSelector(barButton.action)); 

在我創建了一個欄按鈕叫做註銷,並分配給barbutton點擊that.To欄按鈕項目的測試代碼編程我也跟着下面的代碼。

[logout.target performSelector:logout.action]; 

但它沒有奏效。我記錄了註銷按鈕的動作,它也給出了空值。

NSLog(@"%@",logout.action); 

我想知道如何編程點擊uibarbuttonitem其動態創建。

+0

仙人,我refered這一職務。從我得到的代碼[logout.target performSelector :logout.action];但它沒有工作 –

+0

請顯示UIBarbuttonItem聲明。 – CodaFi

回答

5

此代碼和我一起

//in viewDidLoad 
item = [[UIBarButtonItem alloc] initWithTitle:@"test" style:UIBarButtonItemStyleDone target:self action:@selector(logout)];  
toolBar.items = [NSArray arrayWithObject:item]; 

//In viewWillAppear 
[item.target performSelector:item.action]; 

- (void) logout 
{ 
    NSLog(@"Called"); 
} 

我不知道你點擊的意思,但上述工作

+0

我正在做單元測試。我正在爲其他人的代碼編寫單元測試。所以我不能改變它。當我記錄按鈕的操作時,它會給出空值。所以執行選擇器不起作用。當我運行應用程序(我正在測試的那個)時,它工作正常。請善舉給這個想法。 –

+0

它給你什麼null,你嘗試我上面發佈的代碼? –

+0

是的,我做到了。該按鈕的動作爲空。所以選擇器沒有正確設置按鈕?不幸的是我不能在代碼(我正在測試的那個代碼)中找到它的位置。 –

相關問題