gpt4 book ai didi

ios - 将数据从 ViewControllerA 传递到 ViewControllerB(QuickDialog)

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

我是 iOS 开发人员和 QuickDialog 的新手。

我想将数据从 ViewControllerA 传递到 ViewControllerB。

它可以工作,但在 ViewControllerB 中我遇到了问题。

示例

在 ViewControllerA.m 中

-(void) goToViewControllerB
{
ViewControllerB *viewControllerB = [[ViewControllerB alloc]init];
// send data
viewControllerB.ownerName = @"TestData";
[self.navigationController pushViewController:viewControllerB animated:YES];
}

在ViewControllerB.h中

@property (nonatomic, strong) NSString *ownerName;

在ViewControllerB.m中

-(id) init
{
NSLog(@"init");
NSLog(@"ownerName : %@", _ownerName);

self = [super initWithRoot:[self createViewElement]];

return self;
}

-(void) viewDidLoad
{
[super viewDidLoad];

NSLog(@"viewDidLoad");
NSLog(@"ownerName : %@", _ownerName);
}

- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

NSLog(@"viewDidLoad");
NSLog(@"ownerName : %@", _ownerName);
}

在方法初始化中,我使用 QuickDialog 创建了 thisPage 的样式。

在方法 createViewElement 中,我想显示 _ownerName 的数据,但它是 NULL。

这是此示例代码的输出。

>> init
>> ownerName : (null)
>> viewDidLoad
>> ownerName : TestData
>> viewAppear
>> ownerName : TestData

我想在方法 createViewElement 中使用此数据。

如何解决。

附言我尝试在 viewDidLoad 或 viewWillAppear 中调用方法 createViewElement,但它不起作用。

最佳答案

ViewControllerB 的 init 方法在您设置 ownerName 的值之前被调用。查看您的第一个代码片段。你可以改变你的 init 来接受这样的字符串:

- (id)initWithOwner:(NSString*)theOwnerName

然后修改您的 ViewControllerA 代码以像这样传递所有者名称:

viewControllerB = [[ViewControllerB alloc] initWithOwner:@"TestData"];

关于ios - 将数据从 ViewControllerA 传递到 ViewControllerB(QuickDialog),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21297593/

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