这是我在这里的第一篇文章。我会尽快找到答案,因为我还没有找到这个问题的答案。我刚开始。
我正在尝试将视图加载为popover,我正在线上学习一些教程,但是在编译时我遇到了错误。这是有问题的代码:
-(IBAction)contestButton:(id)sender;
{
contestView *screen = [[contestView alloc] init];
UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:contestView];
[pop setDelegate:self];
[pop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[pop setPopoverContentSize:CGSizeMake(615, 650)];
[screen release];
}
错误:
“'matchView'之前的预期表达”
我为在我看来似乎是一个非常小的错误道歉,我似乎无法摆脱,但我感谢你的帮助。
答案 0 :(得分:1)
您似乎有一个名为contestView
的班级。您已创建contestView
的实例并将其存储在变量screen
中。然后尝试将contestView
(类名)作为参数传递给选择器initWithContentViewController:
。您不能将裸类名称作为参数传递。
也许你的意思是这样说:
UIPopoverController *pop = [[UIPopoverController alloc]
initWithContentViewController:screen];
顺便说一下,在iOS编程中常常用大写字母开始一个类名。因此,您应该强烈考虑将课程重命名为ContestView
。
此外,方法-[UIPopoverController initWithContentViewController:]
将UIViewController
的实例作为参数 - 而不是UIView
的实例。如果您的contestView
类是UIView
的子类,那么在您确定调用screen
而不是contestView
后,您会收到其他错误。
如果contestView
是UIViewController
的子类,则应将其重命名为ContestViewController
。