gpt4 book ai didi

ios - 在 View Controller 之间传递核心数据项

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:39:03 26 4
gpt4 key购买 nike

我正在制作一个需要核心数据来存储一些信息的应用程序,我已经设法让应用程序创建实体并添加信息,但是我无法编辑它

我有一个 ListView Controller 显示此信息的简要概述,另一个 ListView Controller 用作模态视图以允许用户编辑他们的信息。

当用户点击列表项时,我需要应用程序显示模态视图 Controller 以及从核心数据模型加载到相关文本框中的选定信息,当用户单击保存时,我需要保存更改

当用户点击列表项时,信息未传递到模态视图中,NSLog 为我确认 - 它告诉我我在 prepareForSegue: 方法中点击的项目,并且在模态视图的 viewDidLoad 中为空:

代码如下:

这是来自 MedsList View Controller ,它显示信息

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
} //selMed declared at top of file as NSManagedObject *selMed;
selMed = [self.meds objectAtIndex:indexPath.row];
NSLog(@"SELECTED MED: %@",[selMed valueForKey:@"name"] );
UIStoryboardSegue *segueString = [NSString stringWithFormat:@"%@",@"editMeds"];

NSLog(@"%@",segueString);

NSLog(@"%@ %@", @"MED NAME",[self.meds objectAtIndex:indexPath.row]);

[self performSegueWithIdentifier:@"editMeds" sender:indexPath];

}

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

if ([segue isEqual: @"editMeds"]) {

NSLog(@"%@ %@", @"SELMED AT PREPARE FOR SEGUE: ",selMed);
UINavigationController *nav = segue.destinationViewController;
MedsEditViewController *dest = (MedsEditViewController *)nav.topViewController;
dest.med = selMed;
dest.chName = [selMed valueForKey:@"name"];//chosen med's name
}

}
}

这是 MedsEdit.m

#import "MedsEditViewController.h"
#import "fibroMappAppDelegate.h"
#import <CoreData/CoreData.h>

@interface MedsEditViewController ()
{
NSManagedObjectContext *context;
}
@end

@implementation MedsEditViewController


@synthesize tbName;
@synthesize tbDose;
@synthesize tbMaxDose;
@synthesize tbType;
@synthesize med;
double dose;
double maxDose;



- (void)viewDidLoad
{
[super viewDidLoad];

NSLog(@"%@ %@", @"recieved MEDICATION", self.med);
NSLog(@"%@ %@", @"recieved Name", _chName);
fibroMappAppDelegate *delegate = [[UIApplication sharedApplication]delegate];
context = [delegate managedObjectContext];

tbName.text = _chName;
}

chName 在 .h 文件中声明为 NSString

有人可以帮我弄清楚我做错了什么吗?以及如何解决它......在过去的几个月里,我断断续续地花了很多时间

这是准备 segue 开始后的日志副本

2013-11-07 14:21:15.475 fibromapp[660:70b] 选定的 MED:med1

2013-11-07 14:21:15.476 fibromapp[660:70b] editMeds

2013-11-07 14:21:15.477 fibromapp[660:70b] 医学名称(实体:药物;id:0x8a6b0a0;

数据:{

剂量 = 3;

lastTaken = 零;

最大剂量 = 5;

名字 = med1;

type = 毫克;

})

2013-11-07 14:21:15.479 fibromapp[660:70b] 警告:在演示过程中尝试演示!

--------------------下面是在MedsEdit viewDidLoad中-------------------- ------

2013-11-07 14:21:15.497 fibromapp[660:70b] 收到药物(空)

2013-11-07 14:21:15.498 fibromapp[660:70b] 收到名称(空)

最佳答案

[segue isEqual: @"editMeds"] 应该是 [segue.identifier isEqualToString: @"editMeds"] 开始...

关于ios - 在 View Controller 之间传递核心数据项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com