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

确保你的方法有参数

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

如果它没有参数,那么如果它只是-(void)showMenu,那么您应该从 中删除:(冒号)@selector(showMenu:)

当您showMenu从实际视图(即Main View)调用 时,showMenu 方法应该在您的Main View.

于 2012-07-05T18:32:11.283 回答
0

感谢你们所有人,我发现我的代码存在多个问题。

(1) 我认为 showMenu 是一个内置函数,并没有在我的程序中的任何地方声明它。

(2) 我不知道目标或行动是如何起作用的。

谢谢你们(女孩?)!

于 2012-07-05T18:42:52.373 回答