我遵循自述文件中的确切步骤,但不是使用xib文件中的UIbutton,而是使用以编程方式创建的UIbarbuttonItem.但是,我收到以下错误:
Terminating app due to uncaught exception ‘NSinvalidargumentexception’,reason: ‘-[UIbarbuttonItem supervIEw]: unrecognized selector sent to instance 0x6a3e420’
我复制粘贴与自述文件中相同的代码,但我只是更改(UIbutton *)okbutton与(ID)发送者(ID这里是UIbarbuttonItem *)
-(voID)popover:(ID)sender{ //the vIEw controller you want to present as popover TestClass *controller = [[TestClass alloc] init]; //our popover FPPopoverController *popover = [[FPPopoverController alloc] initWithVIEwController:controller]; //the popover will be presented from the okbutton vIEw [popover presentPopoverFromVIEw:sender]; //release [controller release];}
我在想,也许这与UIbarbuttonItem不是UIbutton有关?还是别的什么?我尝试将UIbarbuttonItem转换为UIbutton,但仍然给我同样的错误.任何解决方案吗?
还有一个注意事项,以防万一:这是我如何以编程方式创建导航栏以及条形按钮:
UINavigationbar *navbar = [[UINavigationbar alloc] initWithFrame:CGRectMake(320,320,44)];UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@"By Clubs"];[navbar pushNavigationItem:navItem animated:NO];UIbarbuttonItem *editbutton = [[UIbarbuttonItem alloc] initWithTitle:@"Filter" style:UIbarbuttonItemStylebordered target:self action:@selector(popover:)];navItem.rightbarbuttonItem = editbutton;解决方法 presentPopoverFromVIEw只接受一个UIVIEw子类. UIbarbuttonItem不是UIVIEw的子类,所以你需要找到与该按钮项相关的视图.这是我使用FPPopoverController的解决方案
UIbarbuttonItem *buttonItem = sender; UIVIEw* btnVIEw = [buttonItem valueForKey:@"vIEw"]; //On these cases is better to specify the arrow direction [popover setArrowDirection:FPPopoverArrowDirectionUp]; [popover presentPopoverFromVIEw:btnVIEw];
这应该工作!让我知道!
总结以上是内存溢出为你收集整理的iPhone:使用FPPopover类时使用UIBarButtonItem时出错全部内容,希望文章能够帮你解决iPhone:使用FPPopover类时使用UIBarButtonItem时出错所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)