I want to be able to open a ViewController from a different class. So I could simply call it to open a view wherever I need it.
So I have this setup in the class that holds the code:
+ (void)openCalcView: (NSString *)nameOfView {
UIViewController *controller;
if ([nameOfView isEqualToString:@"Tax"]) {
controller = [[TAXViewController alloc]initWithNibName:@"TAXViewController" bundle:nil];
}else if ([nameOfView isEqualToString:@"Rent"]){
controller = [[RENTViewController alloc]initWithNibName:@"RENTViewController" bundle:nil];
}
controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:controller animated:YES completion:nil];
[controller release];
}
But [self presentViewController:controller animated:YES completion:nil]; gives me a warning:
Class method '+presentViewController:animated:completion:' not found (return type defaults to 'id')
I can call simple things like NSLog through this, from any class. But this doesn’t work.
Because openCalcView is a Class method, there is no UIViewController instance (i.e. no [self presentViewController:] method).
You’ll need to also pass a UIViewController to this class method, something like this:
the controller parameter represents the UIViewController that is opening the new view controller