Kevin Py
Kevin Py

Reputation: 2468

Sending 'void' to parameter of incompatible type 'UIViewController'

I create a modal UIView with .xib, and when I click to button, I want display this UIView. But I have an error in the presentViewController : Sending 'void' to parameter of incompatible type 'UIViewController'. Thanks for your answers.

- (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];

}

Upvotes: 0

Views: 701

Answers (1)

rckoenes
rckoenes

Reputation: 69469

The presentViewController:animated:completion: first parameter is an instance of UIViewController not void.

What you are trying to do makes not sense, since you are already adding the view from the modalViewController to the current UIViewControllers view. So there is no need to call presentViewController:animated:completion:.

This will add the view to your current view hierarchy:

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

Also a small remark, classes should start with a capital letter, so your modalViewController class should actually be named ModalViewController.

Upvotes: 4

Related Questions