让我开始告诉你,我是Objective C的新手。我刚刚完成了Big Nerd Ranch的书,我想创建一个真正的简单和基本的应用程序来了解更多。 我的想法是创建一个应用程序,计算两个日期之间的周数。我为此创建了一个类并对其进行了测试。这样可行。
正如您在下面看到的,我创建了视图(以编程方式),一个带有日期,另一个将在您单击开始或结束日期时变为可见。
如果您选择日期并点击“计算周数”按钮,您将返回第一个视图。 不是我的大问题,如何将这个选定的值恢复到我的主屏幕?我已经尝试了几种可能性并在网上搜索信息,但我无法获得工作。 我知道这应该是真的很容易,但对我来说这不是。 : - )
我创建了一个NSMutableArray,其中包含值“开始日期”和“结束日期”。我的想法是将SelectDateView中UILabel的值添加到此数组中。
我在inputview @property (readwrite, retain) NSMutableArray *datesArray;
中创建了一个属性。
在selectDateViewController中我创建了另一个属性@property (nonatomic, assign) BITInputViewController *ivc;
所以我(在我看来)可以为datesArray添加一个值。
当我选择一个日期调用此方法时,它适用于SelectDateView上的UILabel,但不对datesArray执行任何操作。
- (void)LabelChange:(id)sender{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
dateLabel.text = [NSString stringWithFormat:@"%@",
[df stringFromDate:datePicker.date]];
[ivc.datesArray addObject:dateLabel.text];
if (ivc.datesArray) {
for (NSString *d in ivc.datesArray) {
NSLog(@"This is in datesArray %@",d);
}
}else NSLog(@"!ivc.datesArray");
}
当我测试应用程序并选择日期时,我总是在日志文件中看到“!ivc.datesArray”。
我也在-(void)viewWillAppear:(BOOL)animated
对ivc.datesArray进行了此检查,在这里我看到了当前日期,因为我在- (void)viewDidLoad
中使用此dateLabel.text = [NSString stringWithFormat:@"%@",[df stringFromDate:[NSDate date]]];
(当我在输入视图中打印出数组时,它会显示开始日期和结束日期,但不显示所选日期。)
希望有人可以给我一些指示。
答案 0 :(得分:0)
在view1.m文件中的NSString* date
上方声明一个@interface
,并在第一个类中创建一个类似
-(void)passDate:(NSString *)dateString
{
date = [NSString stringWithFormat:@"%@",dateString];
}
and in your second class create object of first class like
View1 * vc = [[View1 alloc]init];
[vc passDate:df];
希望它有效。您必须在NSString
之前声明@interface
并且不要声明属性并进行综合。