iOS:传递数据错误

时间:2013-04-23 23:32:34

标签: ios uilabel ibaction

这种方法对我不起作用。我工作了几分钟。我不知道怎么回事。

这是我的代码。

- (IBAction)donebutton:(id)sender {
    AddTaskViewController *addtask = [[AddTaskViewController alloc]initWithNibName:@"AddTask" bundle:nil];
    addtask.testlabel.text = self.zaman1.text;
    [self dismissViewControllerAnimated:YES completion:nil];

}

一切正常但不起作用。那不是这样吗?这是错误的?

3 个答案:

答案 0 :(得分:1)

您必须在viewWillAppear方法中指定此字符串,IBOutlets(我假设testlabel是IBOutlet UILabel *)在初始化视图之前无法配置。如果这没有帮助,请说明错误是什么。

答案 1 :(得分:0)

更好的方法是在NSString*上创建AddTaskViewController属性。你可以这样做:

AddTaskViewController.h中添加以下内容:

@property (nonatomic, strong) NSString* myLabelsText;

然后在AddTaskViewController.m中确保在viewWillAppear中添加此内容:

self.testlabel.text = self.myLabelsText;

现在假设您已经适当地声明了testLabelmyLabelsText并且它们被合成,您的视图控制器将在适当的时间正确应用字符串,然后您的函数应该更改为:< / p>

- (IBAction)donebutton:(id)sender {
    AddTaskViewController *addtask = [[AddTaskViewController alloc]initWithNibName:@"AddTask" bundle:nil];

    // Set the value on your new NSString* property and let the view controller handle the rest
    addTask.myLabelsText = self.zaman1.text;

    // Don't you want to 'present' the view controller rather than 'dismiss' after having provided it with data?
    [self dismissViewControllerAnimated:YES completion:nil];

}

答案 2 :(得分:0)

您应该使用委托协议,而不是在先前的视图控制器上设置按钮的属性,只需将字符串传回。这个问题应该可以帮助您实现委托协议

dismissModalViewController AND pass data back