这种方法对我不起作用。我工作了几分钟。我不知道怎么回事。
这是我的代码。
- (IBAction)donebutton:(id)sender {
AddTaskViewController *addtask = [[AddTaskViewController alloc]initWithNibName:@"AddTask" bundle:nil];
addtask.testlabel.text = self.zaman1.text;
[self dismissViewControllerAnimated:YES completion:nil];
}
一切正常但不起作用。那不是这样吗?这是错误的?
答案 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;
现在假设您已经适当地声明了testLabel
和myLabelsText
并且它们被合成,您的视图控制器将在适当的时间正确应用字符串,然后您的函数应该更改为:< / 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)
您应该使用委托协议,而不是在先前的视图控制器上设置按钮的属性,只需将字符串传回。这个问题应该可以帮助您实现委托协议