如何从另一个视图控制器检索传递的数据? -目标C

时间:2018-11-07 07:56:45

标签: objective-c xcode

SendDataVc.m-从发送数据。

GetDataVC.m-检索从SendDataVc.m发送的数据

SendDataVC.m:

insertedIds

GetDataVC.h:

NSString *theData = @"Sending data";

GetDataVC *passdataVC = [[GetDataVC alloc] init];

passdataVC.theData = theData;

GetDataVC.m:

@property (strong, nonatomic) NSString *theData;

我尝试过这种方式,但是我得到了空值。

4 个答案:

答案 0 :(得分:0)

我认为应用程序无法运行到功能- (void) getData,您应该在- (void)viewDidLoad- (void)viewWillAppear或以下类似的地方调用此功能:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self getData];
}
-(void)getData {
    NSLog(@"%@", _theData);
}

答案 1 :(得分:-1)

您无法以这种方式实例化UIViewController

使用以下方法,其中@"GetDataVC"是您要实例化的视图控制器的标识符:

GetDataVC *passdataVC = (GetDataVC*)[self.storyboard instantiateViewControllerWithIdentifier:@"GetDataVC"];
passdataVC.theData = theData;

答案 2 :(得分:-1)

在哪里执行getData函数? 如果在设置数据之前在viewDidLoad或init或某个位置执行getData。 您可以通过按钮执行该功能。 我认为这将解决问题。

答案 3 :(得分:-1)

只需实现theData属性的设置方法即可。

将下面的代码粘贴到您的GetDataVC.m中。

- (void)setTheData:(NSString *)theData {
    _theData = theData;
    NSLog(@"theData has set: %@", _theData);
}

引用:Apple Document