首页 > 解决方案 > 我的 viewcontroller 不属于 viewdidLoad 方法

问题描述

我有一个问题,我正在学习 swift 编程,我已经学会毫无问题地处理表格和集合,包括使用 alamofire 服务的 cosumo,但是我遇到了一个问题,我在个性化的表格视图单元格中有一个集合,设法在集合内执行事件单击,并使用我需要的协议传递信息将它传达给 ViewController,但是当我加载以下 ViewController (TabsDetailProductViewController) 时,如果它不跳转到 viewDidLoad 上的方法,它不会落入已添加的与 DetailProductContentViewController 连接的 ContentView。也就是说,正如我在使用该方法时所理解的那样。

func ItemClick(position: Int, model: Product) {
        let Storyboard = UIStoryboard(name: "Main", bundle: nil)
        let tabsViewController = Storyboard.instantiateViewController(withIdentifier: "TabsDetailProductViewController") as! TabsDetailProductViewController
        tabsViewController.productModel = model
        self.navigationController?.pushViewController(tabsViewController, animated: true)
    }

我不得不陷入 TabsDetailProductViewController 的 viewLoaded 中,而是跳转到 DetailProductContentViewController 的 viewLoaded,然后返回到 TabsDetailProductViewController 的 viewLoaded。我需要知道我做错了什么,或者这就是生命周期。

这是我的故事板。

在此处输入图像描述

标签: iosswiftuiviewcontrolleruinavigationcontrolleruistoryboardsegue

解决方案


简短的回答

I need to know what I'm doing wrong?

没有什么

or maybe this is the life cycle.

是的

解释

根据viewdidload的Apple官方文档

在视图控制器将其视图层次结构加载到内存后调用此方法。

view hierarchy在您的情况下TabsDetailProductViewController,为了完全加载DetailProductContentViewController必须首先加载,因为它在视图层次结构TabsDetailProductViewControllercontainment

因此viewdidloadofDetailProductContentViewController将在 TabsDetailProductViewController's之前被调用viewdidload


推荐阅读