gpt4 book ai didi

ios - 将数据从自定义 View 传递到 ViewController

转载 作者:行者123 更新时间:2023-11-29 03:49:41 25 4
gpt4 key购买 nike

我在 XCode 上的单一 View 应用程序有一个自定义 View ,其大小约为整个 iPhone 屏幕的一半。我已经实现了一个只能在自定义 View 内部使用的绘图工具。自定义 View 记录绘图工具移动的距离。只有一个 ViewController,我想在自定义 View 框架外部的标签中显示距离变量。我需要使用协议(protocol)和委托(delegate)来执行此操作吗?或者有更简单的方法吗?过去几天我一直在使用协议(protocol)和委托(delegate)方法进行测试,但没有取得任何进展。

最佳答案

首先在界面构建器中添加自定义 View 作为主视图 Controller View 的 subview ,同时添加标签。然后将标签和 View 的导出添加到 View Controller (我们分别称它们为distanceLabel和drawView)。

现在将 distanceDrawn 声明为自定义 View 的属性,并在移动工具时更新它以包含正确的数字。

然后在 View Controller viewDidLoad 中添加:

    [drawView addObersver:self forKeyPath:@"distanceDrawn" options:NSKeyValueObservingOptionNew context:null]

同时添加到 Controller :

    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([object isEqual:drawView]) {
id distance = change[NSKeyValueChangeNewKey]; //change to appropriate type
distanceLabel.text = [NSString stringWithFormat:@"%@", distance];
}
}

现在,每当您更改 distanceDrawn 时,都会调用此方法,并且名为“change”的字典将包含键 NSKeyValueChangeNewKey 新设置的值。如果检索到该值,则可以更新标签。

关于ios - 将数据从自定义 View 传递到 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17201539/

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