gpt4 book ai didi

ios - instantiateViewControllerWithIdentifier 似乎调用了 viewdidload

转载 作者:可可西里 更新时间:2023-11-01 03:43:26 24 4
gpt4 key购买 nike

我正在尝试以编程方式将 ViewController 推送到导航 Controller 中,并且我正在使用我的 Storyboard来创建它。

这是我的代码:

+ (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 中,我正在使用我的 items。感谢一些断点,我看到 GenericViewController viewDidLoadinstantiateViewControllerWithIdentifier 之后,items 等于 nil。

我认为 MyViewController viewDidLoadpushViewController 方法中被调用。

知道为什么在 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! LoadingViewController
controller.loadViewIfNeeded()

然后我可以访问 View 中的所有内容。

关于ios - instantiateViewControllerWithIdentifier 似乎调用了 viewdidload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com