I'm using the presentViewController:animated:completion:
method to go to another view controller.
This is my code:
AddTaskViewController *add = [[AddTaskViewController alloc] init];
[self presentViewController:add animated:YES completion:nil];
This code goes to the other UIViewController
but the other controller is empty. I've always been using storyboards but now I need this to be done in code.
Try the following:
Try this code:
If you're using a storyboard, you probably shouldn't be using
alloc
andinit
to create a new view controller. Instead, look at your storyboard and find the segue that you want to perform; it should have a unique identifier (and if not, you can set one in the right sidebar).Once you've found the identifier for that segue, send your current view controller a
-performSegueWithIdentifier:sender
message:This will cause the storyboard to instantiate an AddTaskViewController and present it in the way that you've defined for that segue.
If, on the other hand, you're not using a storyboard at all, then you need to give your AddTaskViewController some kind of user interface. The most common way of doing so is to initialize the controller with a nib: instead of just calling
init
, you'll call-initWithNibName:bundle:
and provide the name of a .xib file that contains your add-task UI:(There are other (less common) ways of getting a view associated with your new view controller, but this will probably present you the least trouble to get working.)
Here is how you can do it in Swift:
If you are using Storyboard and your "add" viewController is in storyboard then set an identifier for your "add" viewcontroller in settings so you can do something like this:
if you do not have your "add" viewController in storyboard or a nib file and want to create the whole thing programmaticaly then appDocs says: