I am trying to push a ViewController programmatically into a navigation controller, And I'm using my storyboard to create it.
here is my code :
+ (void) pushViewController:(NSString *) identifier ForItems:(NSMutableArray *) items sender:(UIViewController *) sender {
GenericViewController *viewController = (GenericViewController *)[sender.storyboard instantiateViewControllerWithIdentifier:identifier];
viewController.items = [[NSMutableArray alloc] init];
[viewController.items removeAllObjects];
[viewController.items addObject:[[NSMutableArray alloc] init]];
[viewController.items[0] addObjectsFromArray:items];
[sender.navigationController pushViewController:viewController animated:YES];
}
In GenericViewController viewDidLoad
I'm using my items
. Thanks to some break points I've seen that GenericViewController viewDidLoad
juste after the instantiateViewControllerWithIdentifier
with an items
equal to nil.
I thought that MyViewController viewDidLoad
is called during the pushViewController
method.
Any idea why viewDidLoad
is called during instantiateViewControllerWithIdentifier
?
---Update :---
Here my viewDidLoad
- (void)viewDidLoad
{
for (MyItem *currentItem in self.items[0]) {
[Do Something]
}
[super viewDidLoad];
[...]
}
self.items
is nil. so nothing is done.
instantiateViewControllerWithIdentifier
do not callviewDidLoad
. I update my code, I'm using a static manager to instanciate and push my new viewController – Hanuman