【问题标题】:Set up value of UITextField before loading view在加载视图之前设置 UITextField 的值
【发布时间】:2011-08-19 23:33:39
【问题描述】:

假设我有一个 class1,它有一个带有 UITextField 的视图和一个将字段文本保存在数组中的保存按钮。现在我也有一个class2。在这个 class2 中,我想通过点击一个按钮来加载 class1 视图。但是,我在显示此视图之前设置了 UITextField 的值,以便当 class1 出现时 UITextField 中已经有一个字符串并且可以通过点击进行编辑。这可能吗?

编辑:只有 class2 知道文本字段的值是什么

编辑:我试过这个

    [newInkView setInkTextField:[appDelegate.inks objectAtIndex:indexPath.row]];
    NSLog([appDelegate.inks objectAtIndex:indexPath.row]);
    [self.view addSubview:newInkView.view];
    [self presentModalViewController:newInkView animated:YES];

但这无法设置文本字段值。 NSLog 确实显示了一些价值

【问题讨论】:

    标签: objective-c cocoa-touch


    【解决方案1】:

    要获取班级发送的文本,您可以在 class1 中执行以下操作:

    -(void)setTextString:(NSString*)value
    {
    yourField.text = value;
    }
    

    只要您在显示视图之前调用它,它就会在加载视图时出现,前提是您在 class2 中有一个 class1 的实例。

    编辑:

    已通过使用 NSUserDefaults 在加载视图之前保存字符串并在加载时加载它来解决此问题。

    【讨论】:

    • 但只有 class2 知道文本值是什么
    • 然后创建一个传递它的方法。例如,请参阅我的答案。
    • 对不起,我的意思是只有 class2 知道它会是什么
    • 我试过这个:[newInkView setInkTextField:[appDelegate.inks objectAtIndex:indexPath.row]]; NSLog([appDelegate.inks objectAtIndex:indexPath.row]); [self.view addSubview:newInkView.view]; [self presentModalViewController:newInkView animated:YES]; 但是当视图加载时文本字段是空的,但是日志确实显示文本。可能是什么问题?
    • 在添加子视图后尝试放置设置的文本字段。您的用户真的不会注意到它。如果这不起作用,您可以使用 NSUserDefaults 存储文本并在您的 viewWillAppear 方法中读取它
    【解决方案2】:

    为什么不用值设置视图控制器的属性,并让 VC 将值复制到 viewWillAppear 中的文本字段??

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-04
      • 2018-06-09
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多