0

私は分割ビューアプリを持っています。縦向きモードでは、メニューをクリックすると消えてしまいます。これを修正するために、メニューを表示するための新しいボタンを追加しました。

- (void)viewDidLoad {
    [super viewDidLoad];

    // FORM LIST button was dissapearing, this adds it back everytime
    UIBarButtonItem *btnMenu = [[UIBarButtonItem alloc]initWithTitle:@"Forms List" style:UIBarButtonItemStyleBordered target:self action:@selector(showMenu:)];
    self.navigationItem.leftBarButtonItem = btnMenu;

}

そのビューをロードするたびに表示されます。私の問題は、エラーが発生することです。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DetailViewController showMenu:]: unrecognized selector sent to instance 0x9d58810

問題は次の行にあると確信しています。

UIBarButtonItem *btnMenu = [[UIBarButtonItem alloc]initWithTitle:@"Forms List" style:UIBarButtonItemStyleBordered target:self action:@selector(showMenu:)];

私の質問は: (1) showMenu: は適切な方法ですか? (2) ターゲットは何ですか?

ありがとう。

4

2 に答える 2

0

皆さんのおかげで、コードに複数の問題が見つかりました。

(1) showMenu は組み込み関数だと思っていましたが、プログラムのどこにも宣言されていませんでした。

(2) 目標や行動がどのように機能するかを知りませんでした。

みんな(女の子?) ありがとう!

于 2012-07-05T18:42:52.373 に答える
0

メソッドに引数があることを確認してください

- (void)showMenu:(id)sender
- (IBAction)showMenu:(id)sender

引数がない場合、つまり だけの場合は、から (コロン)-(void)showMenuを削除する必要があります。:@selector(showMenu:)

showMenu実際のビュー (つまり ) からを呼び出す場合Main View、 showMenu メソッドは のどこかで宣言する必要がありますMain View

于 2012-07-05T18:32:11.283 に答える