ViewController'ı programlı olarak bir gezinme denetleyicisine zorlamaya çalışıyorum Ve bunu oluşturmak için storyboard'umu kullanıyorum. Benim items
kullanıyorum GenericViewController viewDidLoad
yılındainstantiateViewControllerWithIdentifier viewdidload çağrısı görünüyor görünüyor
+ (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];
}
:
burada benim kodudur. Bazı kırılma noktaları sayesinde 'dan sonra GenericViewController viewDidLoad
juste'yi items
nil'e eşit olarak gördüm.
pushViewController
yöntemi sırasında MyViewController viewDidLoad
çağrıldığını düşündüm.
viewDidLoad
neden instantiateViewControllerWithIdentifier
?
--- Güncelleme: --- İşte
benim viewDidLoad
- (void)viewDidLoad
{
for (MyItem *currentItem in self.items[0]) {
[Do Something]
}
[super viewDidLoad];
[...]
}
self.items
sıfırdır. bu yüzden hiçbir şey yapılmadı.
tam kod please..what Bir nesneyi başlatırken, canlıdır this..cause değildir method..the sorun myItem ve viewDidLoad olduğu koydu =. –
Daha fazla bilgi vermeniz gerekiyor.InstantiateViewControllerWithIdentifier: 'ı kullandığınız tüm yöntemi gösterin. Yöntem, instantiateViewControllerWithIdentifier :, viewDidLoad'un çağrılmasına neden olmaz, böylece başka bir şey devam eder. – rdelmar
Teşekkürler @rdelmar 'instantiateViewControllerWithIdentifier' 'viewDidLoad' işlevini çağırmayın. Kodumu güncellerim, statik olmayan bir yönetici kullanıyorum ve yeni viewController –