我有一个名为Sync
的按钮。单击它,我需要显示一个popOverController,它在UITableView
中显示一些项目。我在.m
文件中使用了以下代码行来声明UIButton
函数中的ViewWillAppear
:
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Sync"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(syncAction)] ;
syncAction的代码是:
- (void)syncAction:(id)sender{
Sync = [[SyncTableViewController alloc] initWithStyle:UITableViewStylePlain];
Sync.syncDelegate = self;
self.SyncTableViewPopover = [[UIPopoverController alloc]
initWithContentViewController:Sync];
[self.SyncTableViewPopover presentPopoverFromBarButtonItem:sender
permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
}
但是,但是,在运行应用程序时,我收到以下错误::
[splitViewXXXXViewController syncAction]: unrecognized selector sent to instance 0x6b70660
2012-07-02 15:35:59.549 splitView[895:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[splitViewXXXXViewController syncAction]: unrecognized selector sent to instance 0x6b70660'
我无法解决它。有人可以帮我解决一下吗?谢谢和问候。
答案 0 :(得分:2)
您必须使用 @selector(syncAction :)
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Sync"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(syncAction:)] ;
这将解决您的问题
答案 1 :(得分:2)
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Sync"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(syncAction:)] ;
确保你的自我(splitViewXXXXViewController)有一个
- (void)syncAction:(id)sender;
在标题中声明了方法,也是
action:@selector(syncAction:)]
不要忘记添加分号。
答案 2 :(得分:1)
你错过了额外的冒号':'在调用你的选择器时。