Ich versuche, einen ViewController programmgesteuert in einen Navigationscontroller zu schieben, und ich verwende mein Storyboard, um es zu erstellen.instanziateViewControllerWithIdentifier scheint viewdidload aufzurufen
hier ist mein 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
ich meine items
verwenden. Dank einiger Breakpoints habe ich gesehen, dass GenericViewController viewDidLoad
juste nach der instantiateViewControllerWithIdentifier
mit items
gleich Null ist.
Ich dachte, dass MyViewController viewDidLoad
während der Methode aufgerufen wird.
Irgendwelche Idee, warum viewDidLoad
während instantiateViewControllerWithIdentifier
aufgerufen wird?
--- Update: ---
Hier mein viewDidLoad
- (void)viewDidLoad
{
for (MyItem *currentItem in self.items[0]) {
[Do Something]
}
[super viewDidLoad];
[...]
}
self.items
ist gleich Null. also ist nichts getan.
legte der vollständige Code please..what ist myItem und das viewDidLoad method..the Problem ist nicht this..cause wenn Sie ein Objekt initiieren, es am Leben ist. –
Sie müssen weitere Informationen bereitstellen.Zeigen Sie die gesamte Methode an, in der Sie instanziateViewControllerWithIdentifier: verwenden. Die Methode instantiateViewControllerWithIdentifier: wird nicht dazu führen, dass viewDidLoad aufgerufen wird, sodass etwas anderes passiert. – rdelmar
danke @rdelmar Ich bin mir ziemlich sicher 'instanziateViewControllerWithIdentifier' nicht 'viewDidLoad' aufrufen. Ich aktualisiere meinen Code, ich verwende einen statischen Manager, um meinen neuen viewController zu installieren und zu schieben. –