我正在阅读 Apple 提供的教程,并尝试改进“我的第二个 iOS 应用程序”,这是一款用于观鸟的应用程序。 (有一个 MasterView,其中列出了所有输入的目击。如果单击一个,您将被定向到目击的 DetailView。您可以添加目击并要求输入名称和位置。)
我想分离输入鸟类名称和位置的视图。
所以我有两个视图(一个用于输入名称,一个用于输入位置)和一个要存储的对象。
在文件中BirdSighting.m
我添加了以下方法
-(id)initWithNameOnly:(NSString *)name date:(NSDate *)date
{
self = [super init];
if (self) {
_name = name;
_date = date;
return self;
}
return nil;
}
和
-(id)setLocation:(NSString *)location
{
if (self) {
_location = location;
return self;
}
return nil;
}
在AddSightingNameViewController.m
我实现了以下代码
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"ToLocation"])
{
if ([self.birdNameInput.text length])
{
BirdSighting *sighting;
NSDate *today = [NSDate date];
sighting = [[BirdSighting alloc] initWithNameOnly:self.birdNameInput.text date:today];
self.birdSighting = sighting;
}
}
}
用于输入名称的视图通过 push segue 引导到位置视图。其他方面没有太大变化。
现在如何将第一个视图中生成的对象传递给第二个?以及如何setLocation
在这个特定对象上调用方法AddSightingLocationViewController.m
?我必须定义不同的属性吗?输入位置后,如何最终在 MasterView 中显示具有正确数据的对象?
由于这段代码还没有工作,我什至不知道它是否工作,我想做什么。所以请温柔,如果这是糟糕的代码。