首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ChildViewController中添加ChildViewController并执行按钮操作

,可以通过以下步骤实现:

  1. 首先,在ChildViewController中创建一个按钮,并为按钮添加一个点击事件的方法。
代码语言:swift
复制
class ChildViewController: UIViewController {
    // 创建一个按钮
    let addButton = UIButton(type: .system)

    override func viewDidLoad() {
        super.viewDidLoad()

        // 设置按钮的标题和位置
        addButton.setTitle("添加ChildViewController", for: .normal)
        addButton.frame = CGRect(x: 100, y: 100, width: 200, height: 50)

        // 为按钮添加点击事件
        addButton.addTarget(self, action: #selector(addChildViewController), for: .touchUpInside)

        // 将按钮添加到视图中
        view.addSubview(addButton)
    }

    @objc func addChildViewController() {
        // 在按钮点击事件中执行添加ChildViewController的操作
        let childVC = ChildViewController()
        addChild(childVC)
        childVC.view.frame = CGRect(x: 0, y: 200, width: view.frame.width, height: view.frame.height - 200)
        view.addSubview(childVC.view)
        childVC.didMove(toParent: self)
    }
}
  1. 在按钮的点击事件方法addChildViewController()中,创建一个新的ChildViewController实例,并将其作为子视图控制器添加到当前的ChildViewController中。
  2. 设置新添加的ChildViewController的视图大小和位置,然后将其视图添加到当前ChildViewController的视图中。
  3. 最后,调用didMove(toParent:)方法将新添加的ChildViewController与当前的ChildViewController关联起来。

这样,当点击按钮时,就会在当前的ChildViewController中添加一个新的ChildViewController,并显示在界面上。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS小技巧·把子视图控制器的视图添加到父视图控制器

把子视图控制器的视图添加到父视图控制器覆盖 添加子控制器 #pragma mark - 添加子控制器 - (void)addSubControllers{ [self addChildViewController...:_childViewController]; [self.view addSubview:_childViewController.view]; [_childViewController.view...mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.view); }]; } 把子视图控制器的视图添加到父视图控制器的指定容器视图...,适当时机跳转 添加子控制器 #pragma mark - 添加子控制器 - (void)addSubControllers { _childViewController = [[InfoViewController...]; //设置默认显示容器View的内容 [self.contentView addSubview:_childViewController.view]; } 子VC的布局约束 #pragma

95920

Swift 项目 - Xib | StoryBoard 多人协作技巧

对于逻辑复杂的VC,应添加Object对象,绑定相应的类来分离逻辑代码。...所有初始样式都是属性面板设置的值,通过 func setValue(_ value: Any?...值得一提的是,通过此种方式创建的ChildViewController,其构造方法晚于主ViewController,但生命周期中的viewDidLoad则早于主ViewController, 因此ChildViewController...上拖入多个Object,绑定不同的模块控制类,相对于占位的Container View和ChildViewController方法,Object方法传参或互相调用方面,更加简便。...这时可以全局搜素一下 搜出来的结果可以看到,是Main.storyboard上绑定了HomeController,Test.swift文件定义了该类,但是因为改名所以无法找到。

2.1K20
  • Mac开发跬步积累(二):NSViewController 转场动画精耕细作

    从Storyboard的CustomView 连线的控件属性,用来作为容器视图,显示每个ChildViewController的内容 @IBOutlet weak var containView...需要将第一个ChildViewController的view添加到容器视图中; containView.addSubview(childViewControllers[0].view)...: NSViewController, from fromViewController: NSViewController) } 需要执行Present的地方调用presentViewController...自定义present 动画时,需要注意事件穿透问题: 由于显示出来的控制器视图(Controller View)是通过addSubView方式添加到容器视图中,因此控制器视图(Controller...View)上进行点击操作,可能会触发容器视图中控件(比如按钮)的方法 解决办法: 给容器视图添加一层背景视图(自定义的NSView, 重写mouseDown方法即可),通过背景视图屏蔽鼠标操作,防止事件穿透到容器视图中

    2.7K40

    iPad Safari多窗口视图分析和实现思路

    在手机上,由于屏幕空间有限,点击窗口管理的按钮可以看到手机上采用了一种视图层叠的效果,有点模拟从一个实体文件夹翻查文件的感觉。...另外我们可以看到缩略图的顶部有一个标题栏和一个关闭按钮双指缩放放大的过程我们可以看到一个临界点,超过这个临界点的时候标题栏会渐隐,露出原本页面截图顶部的搜索栏和标签栏。...Container View Controller 的 view 我们可以添加一个ScrollView,每当一个新的 ViewController 需要展示,我们参考Apple的示例代码添加childViewController...当从大纲视图回到具体页面,同样可以通过操作 zoomScale和 contentOffset 来使得截图铺满视口,完成后再操作实际 ViewController 的 view 带到视图顶层,再把截图卸载...从 Safari 的表现来看它极有可能也是采用截图的方式,我们实测网页动态播放的视频到了大纲视图并不会继续动态播放,此外 Safari 进程被杀后重启,大纲视图里仍有之前的截图,可以推测是通过静态截图的落地的方式实现

    4K30

    iOS App 启动性能优化

    Xcode运行App时,会在console得到一个报告。...main()函数之后耗时的影响因素 执行main()函数的耗时 执行applicationWillFinishLaunching的耗时 rootViewController及其childViewController...使用方法是Terminalcd到项目所在的目录,然后执行fui find,然后等上那么几分钟(是的你没有看错,真的需要好几分钟甚至需要更长的时间),就可以得到一个列表了。...由于这个工具还不是100%靠谱,可根据这个列表,Xcode手动检查删除不再用到的类。 实际上,日常对代码工程的维护非常重要,如果制定好一套半废弃代码的维护方法,小问题就不会积累成大问题。...的加载,适当将某一级的childViewController或subviews延后加载 如果你的App可能会被后台拉起冷启动,可考虑不加载rootViewController 不应放过的一些小细节 异步操作并不影响指标

    2.2K92

    EmbedExeLnk - LNK 嵌入 EXE 自动执行

    LNK 文件执行一些 Powershell 命令从 LNK 的末尾读取 EXE 的内容,将其复制到 %TEMP% 文件夹的文件,然后执行。 我开发了一个从目标 EXE 文件创建 LNK 的程序。...执行 Powershell 命令从 LNK 中提取 EXE 时,我们不知道已执行的 LNK 文件的文件名。我们可以硬编码文件名,但这不是一个可靠的解决方法。...通过将 LNK 文件的总大小存储 Powershell 命令检查当前目录的所有 *.LNK 文件以找到具有匹配文件大小的文件来解决此问题。 2.查找EXE数据LNK内的偏移量。...这是通过目标字段前加上 512 个空格字符来解决的。这会溢出“属性”对话框的文本字段并且只显示空格。 image.png 4.LNK 文件有一个可执行文件图标。...image.png 6.十六进制编辑器打开 LNK 文件时,EXE 文件清晰可见。

    2.1K30

    Flutter 创建可拖动的浮动操作按钮

    Flutter 允许您使用FloatingActionButton小部件添加浮动操作按钮。但是,它不允许您拖动按钮。如果你想让它可拖动怎么办。...必须根据移动增量更新按钮的偏移量。 一个浮动的动作按钮通常可以点击时执行一个动作,所以我们添加一个名为onPressed( VoidCallback) 的参数作为参数。...所以,我们可以检查内部onPointerUpcallback 仅onPressed值为_isDraggingis 时调用回调false。 下面是用于创建可拖动浮动操作按钮的类。...您需要对 x 轴和 y 轴执行操作。...基本上,您可以使用Listener小部件来检测指针移动事件根据移动增量更新按钮偏移。该Listener小部件还支持检测应执行按钮操作的指针向上事件,除非它刚刚被拖动。

    5.7K10

    使用 cx_Oracle Oracle 中等待记录执行操作

    问题背景:第一个 Python 项目中,需要等待记录被插入 Oracle 表,一旦记录存在,就调用 Python 函数。目前使用 cx_Oracle 库,采用一种无限循环的方式来查询表。...如果不想要每秒都向数据库发送查询,是否有其他方法来等待记录执行操作?解决方案:1....使用 Oracle Advanced Queue:Oracle Advanced Queue 是一种队列服务,允许应用程序之间传递消息。可以使用它来实现等待记录执行操作的功能。...使用触发器:触发器是一种在数据库自动执行操作的机制。可以使用触发器来在记录插入到表时调用 Python 函数。...使用消息队列:消息队列是一种应用程序之间传递消息的机制。可以使用消息队列来实现等待记录执行操作的功能。需要创建消息队列并将其配置为在记录插入到表时发送消息。

    11810

    Directory Opus 添加自定义的工具栏按钮提升效率

    Directory Opus 自定义的工具栏按钮可以执行非常复杂的命令,所以充分利用自定义工具栏按钮的功能可以更大程度上提升工作效率。...-> 自定义工具栏: 这时,会弹出自定义工具栏的对话框,并且所有可以被定制的工具栏现在都会进入编辑状态等待着我们对其进行编辑: 添加一个自定义按钮 你并不需要在自定义工具栏对话框上进行任何操作,只需要在一个现有的工具栏上点击右键...,然后点击 新建 -> 新建按钮: 这时,你会看到一个新的按钮已经出现在了工具栏上: 现在,在此按钮上点击右键,“编辑”,就打开了 Directory Opus 的命令编辑器: 接下来,我们的操作就进入了本文的主要内容...命令编辑器 要定义一个能够极大提升效率的按钮,命令编辑器的多数框我们都是要使用的。 接下来我会通过两个示例来说明如何使用这个命令编辑器。...自定义完按钮之后,不要忘了关闭最开始弹出来的“自定义工具栏”的对话框。

    82740

    深入剖析Auto Layout,分析iOS各版本新增特性

    label有10个point 使用API添加约束 使用NSLayoutConstraint类(最低支持iOS6)添加约束。...Logical Errors:布局的逻辑错误。 不含视图项的约束不合法,每个约束至少需要引用一个视图,不然会崩。删除视图时一定要注意。...实践碰到的非必现低配置机器崩溃bug分析 案例一 一个视图缺少高宽约束,设置完了约束后执行layoutIfNeeded,然后设置宽高,这种情况低配机器上可能会出现崩问题。...就会立刻执行),这时改变的宽高值会在上文生命周期中提到的Auto Layout Cycle的Engine里的Deferred Layout Pass里执行layoutSubview,手动设置的layoutIfNeeded...:NO时会严格按照约束->Engine->显示这种流程,如在Deferred Layout Pass之前设置好是没有问题的,之后强制执行LayoutSubview会产生一个权重和先前一样的约束类似动画

    1.3K10
    领券