如何获取UIBarButtonItem的目标

时间:2011-12-29 14:22:46

标签: objective-c ios

我在UIViewController子类中有以下代码:

MyViewController *viewController = [[MyViewController alloc] init];
viewController.title = title;

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image"]
                                                               style:UIBarButtonItemStyleDone
                                                              target:self 
                                                              action:@selector(mySelector)]; 
viewController.navigationItem.leftBarButtonItem = doneButton;


 NSLog(@"Class name:%@",[viewController.navigationItem.leftBarButtonItem.target className]);

代码在NSLog语句上崩溃,并且有一条警告说没有找到className方法。目标属性不是一个对象,因此我应该可以在其上调用className吗?

我最终要做的是从viewController调用mySelector而不按下按钮。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

正确的方法是class而不是className。

如果您尝试模拟按钮上的触摸,为什么不写:

[self mySelector];

答案 1 :(得分:3)

要直接执行选择器,请尝试调用performSelector:

    [[doneButton target] performSelector:[doneButton action]];