gpt4 book ai didi

ios - 使用基于 XIB 的选项卡栏应用程序在所有 View 中的文本字段中获取 "clear all"值的最佳方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:29:53 24 4
gpt4 key购买 nike

我已经为此苦苦挣扎了很长一段时间,并且在这里和其他地方进行了大量研究,试图找出最好的前进方向。

我有一个带有四个选项卡的选项卡栏应用程序 - 其中三个选项卡接收用户输入和计算值。其中一些值被转发到其他 View (因为它们在相关计算中再次使用)。这不是我的问题——我能够在 View 之间向前和向后发送数据,但我遇到的困难实际上是“清除”所有 View 中的所有值以响应 UILongPress 手势识别器。我在每个 View 上都有一个计算结果的“计算”按钮,以及一个清除显示 View 上的值的“清除”按钮。

这是应用程序的版本 2,我想通过允许用户在任何 View 上按住清除按钮并清除所有值来扩展其功能。

看起来并不太难,但对我来说确实很困难。

我研究过使用全局变量、单例、NSUserDefaults、NSNotification —— 都没有成功。我还没有尝试过键值观察 (KVO),但我认为我的很多问题都源于我使用的是非常旧的代码——我的 AppDelegate.m 文件具有较旧的“DidFinishLaunching”方法,而不是较新的方法“ApplicationDidFinishLaunchingWithOptions”此外,选项卡栏和 View Controller 都是在 Interface Builder 中创建的,而不是像在较新的 XCode 选项卡栏模板中那样以编程方式创建。

我怀疑我的问题可能出在我对 viewWillAppear 和/或 viewDidLoad 的使用上——我在我的每个 viewcontroller.m 文件中都使用了 viewWillAppear,并且效果很好。其核心是,我应该能够以某种方式设置全局 BOOL(“清除所有按下?”是或否),当 View 出现时,查看该变量,如果是,则设置相应的 uitextfield.text 属性为 nil——如果为 NO,则继续正常的初始化和显示。)

我也试过 awakeFromNib,但没有成功。

在我发布任何代码之前,有人知道我可以尝试什么吗?感谢您提供的任何帮助!

最佳答案

循环遍历 tabbarcontroller 中的所有 View Controller ,然后循环遍历每个 View Controller View 的 subview ,如果 View 是文本字段,则清除它。

- (void)clearAll
{
for (UIViewController *vc in self.tabBarController.viewControllers) {
for (UIView *view in vc.view.subviews) {
if ([view isKindOfClass:[UITextField class]]) {
UITextField *textField = (UITextField *)view;
textField.text = nil;
}
}
}
}

关于ios - 使用基于 XIB 的选项卡栏应用程序在所有 View 中的文本字段中获取 "clear all"值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18626444/

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