将'void'发送到不兼容类型'UIViewController'的参数

时间:2014-11-19 08:48:51

标签: objective-c ios7 uiview uiviewcontroller modalviewcontroller

我用.xib创建了一个模态UIView,当我点击按钮时,我希望显示这个UIView。但是我在presentViewController中有一个错误:发送' void'到不兼容类型的参数' UIViewController'。谢谢你的回答。

- (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 个答案:

答案 0 :(得分:4)

presentViewController:animated:completion:第一个参数是UIViewController而非void的实例。

您尝试做的事情没有意义,因为您已经将视图从modalViewController添加到当前UIViewControllers视图。因此无需致电presentViewController:animated:completion:

这会将视图添加到当前视图层次结构中:

- (IBAction)showBTN:(id)sender {
    [self modal];
}

同样是一个小注释,类应以大写字母开头,因此您的modalViewController类实际上应该命名为ModalViewController