gpt4 book ai didi

ios - 在 Objective-C 中将值从一个 ViewController 传递到另一个

转载 作者:行者123 更新时间:2023-11-28 17:54:42 24 4
gpt4 key购买 nike

我正在尝试将 NSString(消息)从 ViewController(发送方)传递到 MyViewController(接收方) ).

我在 ViewController 中创建了一个 MyViewController 实例,名为 testViewContoller,我通过它发送 NSString 使用setTitle: 方法:

MyViewController *testViewController = [[MyViewController alloc] init];
[testViewController setTitle:message];

这是 MyViewController.h:

- (void)setTitle:(NSString*)title;

这是 MyViewController.m:

- (void)setTitle:(NSString*)title {

_testField.text = title;

}

我不完全确定为什么这不起作用,但我认为这与调用 setTitle: 之前的 viewDidLoad 加载有关。

如果您能提供任何帮助,我们将不胜感激。

谢谢。

最佳答案

_testField 是在哪里创建的?如果它在viewDidLoad中,那么当你调用setTitle时它是nil,这意味着它是一个空操作。 viewDidLoad 在 View 被添加到窗口时被调用,这意味着如果你只是在 View Controller 上调用 init viewDidLoad 可能永远不会被调用.

我会在 MyViewController 上定义一个属性,它是所需的字段文本,然后在 viewDidLoad 中有 _testField.text = title:

MyViewController *testViewController = [[MyViewController alloc] init];
testViewController.testFieldText = message;

- (void)viewDidLoad {
[super viewDidLoad];

// do something to initialize _testField here

_testField.text = title;
}

另请注意,UIViewController 已经有一个名为 title 的属性,覆盖 setTitle: 可能会产生您未预料到的副作用。

关于ios - 在 Objective-C 中将值从一个 ViewController 传递到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16182084/

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