Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将数据从ViewControllerA传递到ViewControllerB(QuickDialog)_Ios_Objective C_Quickdialog - Fatal编程技术网

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

Ios 将数据从ViewControllerA传递到ViewControllerB(QuickDialog),ios,objective-c,quickdialog,Ios,Objective C,Quickdialog,我是iOS开发者和QuickDialog的新手 我想将数据从ViewControllerA传递到ViewControllerB 这是工作,但在ViewControllerB中我有一个问题 示例 在ViewControllerA.m中 -(void) goToViewControllerB { ViewControllerB *viewControllerB = [[ViewControllerB alloc]init]; // send data viewControl

我是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);
}
在方法init中,我使用QuickDialog创建此页面的样式

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

这是此示例代码的输出。

>> init
>> ownerName : (null)
>> viewDidLoad
>> ownerName : TestData
>> viewAppear
>> ownerName : TestData
我想在方法createViewElement中使用此数据

如何解决


另外,我试图在viewDidLoad或ViewWillDisplay中调用方法createViewElement,但它不起作用。

在设置
ownerName
的值之前,调用了
ViewControllerB
的init方法。请参阅您的第一个代码片段。您可以更改init以接受如下字符串:

- (id)initWithOwner:(NSString*)theOwnerName
然后修改ViewControllerA代码以传递所有者名称,如下所示:

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

如果你是iOS新手,你不使用故事板有什么原因吗?在我们的项目中,只使用代码。你显然不能在数据出现之前引用它。一个选项是将ownerName作为参数传递给init。