微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为包含中的视图控制器提供参数?

如何解决如何为包含中的视图控制器提供参数?

我正在尝试将一个参数传递给包含在其中的视图控制器:

// .storybook/main.js

// Imports the app's Webpack Config (change this to require() style with older Node.js versions).
import appWebpackConfig from '../webpack.config.js';

const isCSSRule = (rule) => rule.test.toString() === '/\\.css$/';

module.exports = {
    ...
    webpackFinal: (config) => {
        // Removes the existing CSS rule.
        config.module.rules = config.module.rules.filter((rule) => !isCSSRule(rule));

        // Tells Storybook to use the same CSS rule config as our app.
        config.module.rules.push(appWebpackConfig.module.rules.find(isCSSRule));

        return config;
    }
    ...
};

let childVC = ChildViewController() addChild(childVC) childVC.view.frame = frame view.addSubview(childVC.view) childVC.didMove(toParent: self) 具有多个属性,其中之一必须从父视图控制器传递。

我已经尝试了一些方法,但是都没有效果

ChildViewController

let childVC = ChildViewController(someProperty: someProperty)

解决方法

此行:

let childVC = ChildViewController()

几乎总是错误的。这将创建一个ChildViewController的空实例,其中未设置任何视图,渠道或操作。

通常,您想从Storboard或nibfile实例化视图控制器。

如果您询问如何在子视图控制器的视图中安装内容,答案是“不要这样做”。

如果您希望父视图控制器具有子视图控制器,最简单的方法是将容器视图放在IB中的父视图控制器上。然后,从该容器视图中将控件拖到要成为子视图的视图控制器上,并在出现提示时,选择“ embed segue”作为要创建的链接类型。

这将导致系统在容器视图中安装子视图控制器,并连接所有管道以使其正常工作

在实例化子视图控制器之后但在加载视图之前,将立即调用父视图控制器的prepare(for:sender:)方法。您可以将代码放入prepare(for:sender:)方法中,以将值传递给子视图控制器(不直接设置其视图,而是设置属性或调用方法)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。