首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS:错误地传递数据

iOS:错误地传递数据
EN

Stack Overflow用户
提问于 2013-04-24 07:32:34
回答 3查看 78关注 0票数 0

这个方法对我不起作用。我在工作几分钟。不知何故,我做不到。

这是我的代码。

代码语言:javascript
运行
复制
- (IBAction)donebutton:(id)sender {
    AddTaskViewController *addtask = [[AddTaskViewController alloc]initWithNibName:@"AddTask" bundle:nil];
    addtask.testlabel.text = self.zaman1.text;
    [self dismissViewControllerAnimated:YES completion:nil];

}

一切正常,但不能正常工作。难道不是这样吗?这是错的吗?

EN

回答 3

Stack Overflow用户

发布于 2013-04-24 07:46:00

您必须在viewWillAppear方法中指定此字符串,在初始化视图之前,不能配置IBOutlets (我假设testlabel是一个IBOutlet UILabel *)。如果这不起作用,请详细说明错误是什么。

票数 1
EN

Stack Overflow用户

发布于 2013-04-24 08:50:40

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

AddTaskViewController.h中添加以下内容:

代码语言:javascript
运行
复制
@property (nonatomic, strong) NSString* myLabelsText;

然后在AddTaskViewController.m中,一定要在viewWillAppear中添加以下内容

代码语言:javascript
运行
复制
self.testlabel.text = self.myLabelsText;

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

代码语言:javascript
运行
复制
- (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];

}
票数 0
EN

Stack Overflow用户

发布于 2013-04-24 09:22:14

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

dismissModalViewController AND pass data back

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16180918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档