我在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而不按下按钮。有没有办法做到这一点?
答案 0 :(得分:3)
正确的方法是class而不是className。
如果您尝试模拟按钮上的触摸,为什么不写:
[self mySelector];
答案 1 :(得分:3)
要直接执行选择器,请尝试调用performSelector:
[[doneButton target] performSelector:[doneButton action]];