我对Core Data的问题很小。 我将跳过代码,因为它工作正常。我只需要知道在里面做什么 prepareForSeague方法。
App有2个视图 - ViewControllerA和TableViewControllerB。 在TableViewControllerB中,我使用带有单元标识符的自定义单元格设置了表视图:customCell。 我按下按钮ADD,它显示2行警报视图。警报视图向实体添加2个属性,这些属性显示在表格单元格中。 实体称为SOMEentity,而Attributes是name(NSString)和value(NSString也是)。
视图控制器A有两个textField:TextFieldA和TextFieldB,一个名为calculateLabel的按钮计算和标签。 “计算”按钮只是添加textFields中的值。
现在我想这样做 - 点击单元格将在TextFieldA中显示属性值。
我必须在
内做什么-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
{
if ([[segue identifier] isEqualToString:@"FromViewBToViewA"]) {
}
}
另外,我是否必须在ViewControllerA中的viewDidLoad方法内写一些内容? 所有字符串和标签都具有非原子性,强大的属性。
谢谢!
答案 0 :(得分:0)
您需要在目标UIViewController中创建一个属性,并在prepareForSegue:sender:方法中设置值,如下所示:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NextViewController *nvc = [segue destinationViewController];
[nvc setEntity:@"MyEntity"]; //for example
}
答案 1 :(得分:0)
在第二个viewController上创建一个属性,即要将对象传递给的那个。然后在prepareForSegue:sender:方法中设置destinationViewController上的属性(即您要设置对象的属性)。请记住将其转换为您自己的子类。 正如您在prepareForSegue:sender:method中所知,哪个单元格是被挖掘的单元格,您需要在属性或ivar中存储对所选对象的引用。您可以使用NSIndexPath在方法'tableView:didSelectRowAtIndexPath:'中获取该对象。
接下来,在viewController的viewWillAppear:方法中,该方法现在具有该属性,使用该属性更新textField。
答案 2 :(得分:0)
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
{
if ([[segue identifier] isEqualToString:@"FromViewBToViewA"]) {
ViewControllerA * dest = (ViewControllerA*)segue.destinationViewController;
dest.property1 = @"Some property value";
dest.property2 = @"Some property value";
}
}
抓住目标控制器投射它并传入预期值。然后在目标控制器中。确保在ViewControllerA的标题中包含property1和property2作为属性
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:YES];
//Set your text view values with your configured properties from the segue.
}