在_strong id类型的对象上找不到属性框架

时间:2014-11-11 11:16:53

标签: ios uipopovercontroller

这是我尝试在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
}

提前完成。

1 个答案:

答案 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 

(注意小写的起始字母和驼峰式格式)。