0

让我开始告诉你,我是 Objective C 的新手。我刚刚读完 Big Nerd Ranch 的书,我想创建一个真正简单和基本的应用程序来了解更多信息。我的想法是创建一个应用程序来计算两个日期之间的周数。我为此创建了一个类并对其进行了测试。这样可行。

正如您在下面看到的,我已经创建了视图(以编程方式),一个带有日期,另一个将在您单击开始或结束日期时变得可见。

如果您选择一个日期并单击“计算周”按钮,您将返回到第一个视图。不,我的大问题是,如何将这个选定的值返回到我的主屏幕?我尝试了几种可能性并在网上搜索信息,但我无法工作。我知道这应该很容易,但对我来说现在不是。:-)

我创建了一个包含值“开始日期”和“结束日期”的 NSMutableArray。我的想法是将 UILabel 的值从 SelectDateView 添加到这个数组。我为此在 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”。

我也对 ivc.datesArray 进行了检查,在-(void)viewWillAppear:(BOOL)animated 这里我看到了当前日期,因为我- (void)viewDidLoad 用这个设置了这个日期dateLabel.text = [NSString stringWithFormat:@"%@",[df stringFromDate:[NSDate date]]];

(当我在输入视图中打印出数组时,它会显示开始日期和结束日期,但不显示所选日期。)

希望有人可以给我一些指示。

4

1 回答 1

0

NSString* date 在您的 view1.m 文件中声明 a@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

于 2013-03-01T12:18:31.597 回答