将“void”发送到不兼容类型“UIViewController”的参数
Posted
技术标签:
【中文标题】将“void”发送到不兼容类型“UIViewController”的参数【英文标题】:Sending 'void' to parameter of incompatible type 'UIViewController' 【发布时间】:2014-11-19 08:48:51 【问题描述】:我用 .xib 创建了一个模态 UIView,当我点击按钮时,我想显示这个 UIView。但是我在 presentViewController 中有一个错误:。感谢您的回答。
- (void)modal
modalViewController *mvc = [[modalViewController alloc] initWithNibName:@"modalViewController" bundle:nil];
UIView * modal = [[UIView alloc] initWithFrame:CGRectMake(self.view.center.x/2, self.view.center.y/2, 240, 320)];
modal.backgroundColor = [UIColor whiteColor];
[modal addSubview:mvc.view];
[self.view addSubview:modal];
- (IBAction)showBTN:(id)sender
[self presentViewController:[self modal] animated:YES completion:nil];
【问题讨论】:
【参考方案1】:presentViewController:animated:completion:
第一个参数是UIViewController
的实例,而不是void
。
您尝试做的事情没有意义,因为您已经将 modalViewController
中的视图添加到当前 UIViewControllers
视图中。所以不用打presentViewController:animated:completion:
。
这会将视图添加到您当前的视图层次结构中:
- (IBAction)showBTN:(id)sender
[self modal];
还有一点需要注意的是,类应该以大写字母开头,所以你的modalViewController
类实际上应该命名为ModalViewController
。
【讨论】:
以上是关于将“void”发送到不兼容类型“UIViewController”的参数的主要内容,如果未能解决你的问题,请参考以下文章
将“double”发送到不兼容类型“id _Nullable”的参数
将 uiviewcontroller strong 发送到不兼容类型 id 的参数的警告
将“NSNumber *__strong”发送到不兼容类型“CLLocationDegrees”(又名“double”)的参数
指向整数转换的不兼容指针将“void *”发送到“PHImageContentMode”类型的参数(又名“枚举 PHImageContentMode”)