0

splitViewコントローラーを実装するビューがあります。

ナビゲーションコントローラーに2つのボタンを追加する必要がありました。最初のものをUIBuilderで追加しましたが、2番目のものを追加できないため、コードで追加しました。

- (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;

上記の一致する定義と合成を使用します。

doneメソッドを-(void)done:(UIBarButtonItem *)sender;として宣言しました。

しかし、完了ボタンをクリックするとエラーが発生します

-[ConfigurationViewController done]: unrecognized selector sent to instance

私はいくつかのことを試しました。bbiはhファイルではなくローカルで宣言され、doneはhファイルで宣言されておらず、doneメソッドは代わりにidを期待していますが、運がありません。

私は明らかに愚かなことをしている。何か考えは?

4

1 に答える 1

2

次のような方法の場合、doneの後にコロンを付ける必要があると思います。

bbi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone   target:self action:@selector(done:)];
于 2013-03-01T03:00:24.980 に答える