这是我尝试在IOS中构建的第一个应用程序,但我遇到了一些问题。虽然我在这里读过类似的线程但是我找不到答案。我想在我点击按钮时显示popoverview控制器。但是无法做到。我收到错误提及问题标题下面是我的文件
.h文件
@property (nonatomic,strong) UIPopoverController *popOver;
@property (nonatomic,strong) SecondViewController *popOverView;
.m文件
- (IBAction)Getcompany:(id)sender {
SecondViewController *popoverview=[self.storyboard instantiateViewControllerWithIdentifier:@"popover"];
self.popOver =[[UIPopoverController alloc] initWithContentViewController:popoverview];
[self.popOver presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];// m getting an error in this line
}
提前完成。
答案 0 :(得分:6)
您需要告诉编译器sender
实际上是UIButton
:
- (IBAction)Getcompany:(id)sender {
UIButton *button = (UIButton *)sender;
SecondViewController *popoverview=[self.storyboard instantiateViewControllerWithIdentifier:@"popover"];
self.popOver =[[UIPopoverController alloc] initWithContentViewController:popoverview];
[self.popOver presentPopoverFromRect:button.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
}
-OR -
您可以使用以下表单:
[sender frame]
而不是:
sender.frame
注意:名称Getcompany
不是Objective-C方法的常规名称;我不知道它的作用,但如果它是一种动作方法,那么这样的事情可能会更好:
- (IBAction)companyButtonPressed:(id)sender
(注意小写的起始字母和驼峰式格式)。