我有一个拆分视图应用。在纵向模式下,菜单在单击后会消失。为了解决这个问题,我添加了一个新按钮,它只是显示菜单:
- (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)目标应该是什么?
感谢。
答案 0 :(得分:0)
确保您的方法有参数
- (void)showMenu:(id)sender
- (IBAction)showMenu:(id)sender
如果它没有参数,那么如果它只是-(void)showMenu
,那么你应该从:
中删除@selector(showMenu:)
(冒号)。
当您从实际视图中调用showMenu
时(即Main View
),showMenu方法应该在Main View
的某处声明。
答案 1 :(得分:0)
感谢大家,我发现我的代码存在多个问题。
(1)我认为showMenu是一个内置函数,并且在我的程序中没有声明它。
(2)我不知道目标或行动是如何运作的。
谢谢你们(女孩们?)!