ios – instantiateViewControllerWithIdentifier似乎调用了viewdidload

ios – instantiateViewControllerWithIdentifier似乎调用了viewdidload,第1张

概述我试图以编程方式将ViewController推送到导航控制器,而我正在使用我的故事板来创建它. 这是我的代码: + (void) pushViewController:(NSString *) identifier ForItems:(NSMutableArray *) items sender:(UIViewController *) sender { GenericViewContr 我试图以编程方式将VIEwController推送到导航控制器,而我正在使用我的故事板来创建它.

这是我的代码:

+ (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];}

在GenericVIEwController vIEwDIDLoad我正在使用我的项目.感谢一些断点,我看到GenericVIEwController vIEwDIDLoad juste在instantiateVIEwControllerWithIDentifIEr之后,项目等于nil.

我认为在pushVIEwController方法期间调用MyVIEwController vIEwDIDLoad.

知道为什么在instantiateVIEwControllerWithIDentifIEr期间调用vIEwDIDLoad?

—更新:—

这是我的vIEwDIDLoad

- (voID)vIEwDIDLoad{    for (MyItem *currentItem in self.items[0]) {        [Do Something]    }    [super vIEwDIDLoad];    [...]}

self.items是零.所以什么都没做.

解决方法 对任何可能仍有同样问题的人.

我遇到了类似的情况,只需调用loadVIEwIfNeeded()即可解决问题.

let sb: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)let controller = sb.instantiateVIEwControllerWithIDentifIEr("LoadingVIEw") as! LoadingVIEwControllercontroller.loadVIEwIfNeeded()

然后我可以访问视图中的所有内容.

总结

以上是内存溢出为你收集整理的ios – instantiateViewControllerWithIdentifier似乎调用了viewdidload全部内容,希望文章能够帮你解决ios – instantiateViewControllerWithIdentifier似乎调用了viewdidload所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1076073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存