我有一个带有菜单的应用程序,可以加载从本地 HTML 文件加载的各种 UIWebView。 (此代码在 WebViewController 中)
//Code for the WebView
vesperswebview.scrollView.bounces = NO;
[[vesperswebview scrollView] setBounces:NO];
[(UIScrollView*)[vesperswebview.subviews objectAtIndex:0] setShowsVerticalScrollIndicator:NO];
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"data/html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSString *theAbsoluteURLString = [url absoluteString];
NSString *queryString = @"#?manifest=Psalmody-Morning";
NSString *absoluteURLwithQueryString = [theAbsoluteURLString stringByAppendingString:queryString];
NSURL *finalURL = [NSURL URLWithString:absoluteURLwithQueryString];
NSURLRequest *request = [NSURLRequest requestWithURL:finalURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:(NSTimeInterval)10.0];
[vesperswebview loadRequest:request];
我还有一个名为 FlatDate Picker 的自定义日期选择器:(此代码在我的主 ViewController 中),它链接到我从 GitHub 获得的导入的 FlatDatePicker 开源项目。
- (void)flatDatePicker:(FlatDatePicker*)datePicker dateDidChange:(NSDate*)date {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSCalendar *coptic = [[NSCalendar alloc] initWithCalendarIdentifier:@"coptic"];
[dateFormatter setCalendar:coptic];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
if (datePicker.datePickerMode == FlatDatePickerModeDate) {
[dateFormatter setDateFormat:@"EEEE, MMMM, dd, yyyy"];
} else if (datePicker.datePickerMode == FlatDatePickerModeDate) {
[dateFormatter setDateFormat:@"HH:mm:ss"];
} else {
[dateFormatter setDateFormat:@"EEEE, MMMM, dd, yyyy HH:mm:ss"];
}
NSString *value = [dateFormatter stringFromDate:date];
self.labelDateSelected.text = value;
}
我的问题是,当我在主视图 Controller 中选择日期时,如何保存该日期并将其传递到下一个 View 以在我的数据库中加载适当的 日期敏感 Javascript ?
最佳答案
鉴于 FlatDatePicker 的外观,从中获取的日期可以转换为以下 JavaScript DateFormats
ISO Date "2015-03-25" (The International Standard)
Short Date "03/25/2015" or "2015/03/25"
Long Date "Mar 25 2015" or "25 Mar 2015"
将 NSDate
转换成这些格式。可以做到以下几点
NSDateFormatter *ISODateFormatter = [[NSDateFormatter alloc] init];
[ISODateFormatter setDateFormat:@"yyyy-mm-dd"];
NSDateFormatter *ShortDateFormatter = [[NSDateFormatter alloc] init];
[ShortDateFormatter setDateFormat:@"yyyy/mm/dd"];
NSDateFormatter *LongDateFormatter = [[NSDateFormatter alloc] init];
[LongDateFormatter setDateFormat:@"dd MMM yyyy"];
NSString *ISODate = [ISODateFormatter stringFromDate:date];
NSString *ShortDate = [ShortDateFormatter stringFromDate:date];
NSString *LongDate = [LongDateFormatter stringFromDate:date];
您可以将此日期保存在 selectedDate
变量中。然后,您可以像这样在 UIViewController
中拥有一个 init 属性
@interface JSViewController ()
@property (nonatomic, strong) NSString *currentDate;
@end
-(instancetype)initWithDate:(NSString *)jsDate {
self = [super initWithNibName:NULL bundle:NULL];
if (self) {
_currentDate = jsDate;
}
return self;
}
您可以通过以下方式从另一个ViewController
初始化和启动此ViewController
。
JSViewController *jsVC = [[JSViewController alloc] initWithDate:ISODate];
[self presentViewController:jsVC animated:YES completion:nil];
试试这个。如果它不起作用,请随时 ping 我。随时提出修改建议以使其变得更好。
关于javascript - 将 NSDate 传递给 iOS 中的本地 UIWebView - Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39863866/