Ios 如何以程序化的方式激发一个uibarbuttonite的行动?
可能重复:Ios 如何以程序化的方式激发一个uibarbuttonite的行动?,ios,action,uibarbuttonitem,Ios,Action,Uibarbuttonitem,可能重复: 我已经动态创建了一个uibarbuttonim,它工作正常。我想为单元测试以编程方式启动uibarbutton项操作(单击) 即使当我在应用程序代码(而不是测试代码)中记录bar按钮项的操作时,代码工作正常,它也会给出null。下面给出了我使用的代码 NSLog(@"%@",NSStringFromSelector(barButton.action)); 在测试代码中,我创建了一个名为logout的条形按钮,并将barbutton分配给该按钮 [logout.target pe
我已经动态创建了一个
uibarbuttonim
,它工作正常。我想为单元测试以编程方式启动uibarbutton
项操作(单击)
即使当我在应用程序代码(而不是测试代码)中记录bar按钮项的操作时,代码工作正常,它也会给出null。下面给出了我使用的代码
NSLog(@"%@",NSStringFromSelector(barButton.action));
在测试代码中,我创建了一个名为logout的条形按钮,并将barbutton分配给该按钮
[logout.target performSelector:logout.action];
但它不起作用。我记录了注销按钮的操作,它也给出了null
NSLog(@"%@",logout.action);
我想知道如何通过编程方式单击动态创建的
uibarbuttonitem
。此代码与我一起工作
//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");
}
我不知道你所说的点击是什么意思,但是上面的方法很有效,我参考了那篇文章。从中我得到了代码[logout.target performSelector:logout.action];。但是它不能工作,请看uibarbuttonim声明。我这样做是为了单元测试。我正在为别人的代码编写单元测试。所以我不能改变它。当我记录按钮的动作时,它给出null。所以performselector不起作用。当我运行应用程序(我正在测试的应用程序)时,它工作正常。请仔细考虑一下。它给了你什么空值,你试过我上面发布的代码了吗?是的,我试过了。按钮的操作为空。那么按钮的选择器设置不正确?不幸的是,我无法在代码(我正在测试的代码)中找到它的设置位置。那么,可能它没有设置,甚至在您进行单元测试之后,它的设置也没有设置。这是让uibarbuttoneim执行其功能的唯一方法。(将选择器设置为其操作)?选择器是否为空,按钮是否仍能执行其功能?