【发布时间】:2015-02-20 20:59:57
【问题描述】:
我正在尝试将一个 NSString 从 ViewController 传递到 secondViewController,但该值返回 null。我正在使用 Storyboards 和一个在按下 selectDateButton 时触发的当前模态序列。
用户使用UIDatePicker 选择日期,然后将值格式化为 MM/dd 并放入 NSString ivar。我正在使用该 ivar 并将其设置为我的 secondViewController 中的一个属性。我很确定我的错误可能在于我在 prepareForSegue 部分中编写的方式。
我也尝试将其写为svc.theDate = [NSString stringWithFormat:@"%@", selectedDateString];,但无济于事。
我不知道为什么会这样,希望能得到一些帮助。
ViewController.h
#import "secondViewController.h"
@interface ViewController : UIViewController {
UIDatePicker *datePicker;
NSDateFormatter *dateFormatter;
NSDate *selectedDate;
NSString *selectedDateString;
}
ViewController.m
- (IBAction)selectDateButton:(id)sender {
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd"];
selectedDate = [datePicker date];
selectedDateString = [dateFormatter stringFromDate:selectedDate];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"toSecondViewController"]) {
secondViewController *svc = [segue destinationViewController];
svc.theDate = selectedDateString;
}
}
secondViewController.h
#import "ViewController.h"
@interface secondViewController : UIViewController {}
@property (nonatomic, strong)NSString *theDate;
- (IBAction)button:(id)sender;
@end
secondViewController.m
- (IBAction)button:(id)sender {
NSLog(@"Selected Date: %@", _theDate);
}
【问题讨论】:
-
你的目标视图控制器类是
secondViewController还是Birthday Screen? -
在更改我的帖子代码时忘记编辑它。无论如何,问题仍然存在。
标签: ios objective-c xcode nsstring segue