在UINavBar中按UIBarButtonItem会将无法识别的选择器发送到实例

时间:2013-03-01 02:54:49

标签: objective-c uibarbuttonitem unrecognized-selector

我有一个实现splitView控制器的视图。

我必须向导航控制器添加两个按钮。我在UIBuilder中添加了第一个,但它不会让我添加第二个,所以我在代码中做到了.....

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view addSubview: _splitViewController.view];
    _splitViewController.delegate = _rightViewController;
    _leftViewController.delegate = _rightViewController;
    _rightViewController.leftView = _leftViewController;
   bbi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone   target:self action:@selector(done)];
    _navItem.leftBarButtonItem = bbi;
}

bbi在标题中声明为

@property (nonatomic, retain)     UIBarButtonItem * bbi;

上面的匹配定义和综合。

我已将完成方法声明为      - (void)done:(UIBarButtonItem *)sender;

但是当我点击完成按钮时出现错误

-[ConfigurationViewController done]: unrecognized selector sent to instance

我尝试了很多东西,bbi在本地而不是在h文件中声明, 如果没有在h文件中声明完成,那么使用done方法需要一个id,但没有运气。

我显然做了一些愚蠢的事。知道什么吗?

1 个答案:

答案 0 :(得分:2)

我认为如果它是这样的方法,那么应该在它之后有一个冒号:

bbi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone   target:self action:@selector(done:)];