Начнем с того, что я новичок в мире Objective C, поэтому мой вопрос может показаться наивным.Даже структурирование методов может быть не совсем правильным, так что будьте добры со мной.Я уверен, что я буду учиться по мере продвижения вперед.
У меня есть контроллер представления контейнера " DeckViewController ", в котором находится другой контроллер представления " CardDetails ". CardDetails имеет вид прокрутки, который используется для загрузки 3 пользовательских UIViews (CustomWebView) одновременно, в которые загружается HTML.HTML-код, загруженный в эти представления, содержит изображения, и требование состоит в том, что, как только пользователь нажимает на любое изображение на странице, он открывается в QLPreviewController .Я завернул все изображения в HTML в тег привязки, чтобы делегат shouldStartLoadWithRequest
обрабатывал загрузку этого изображения.
Этот обработчик записан в классе CustomWebView, и я пытаюсь загрузить контроллер предварительного просмотра.используя родительский контроллер представления CustomWebView, то есть CardDetails .
Я проследил код, и он выдает правильные значения, но кое-что, как модальный контроллер представления вообще не подходит.Я мог просто пропустить небольшую ссылку или пропустить весь смысл здесь.Буду очень признателен за помощь и руководство.
Фрагмент кода для обработчика делегатов shouldStartLoadWithRequest приведен ниже -
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSString* strExtension;
NSLog(@"THE Path of the image %@",request);
NSString *imageName = [[[request URL] path] lastPathComponent];
NSArray *comt = [imageName componentsSeparatedByString:@"."];
strExtension = [comt objectAtIndex:[comt count]-1];
NSLog(@"file extension %@",strExtension);
if ([strExtension isEqualToString:@"png"] || [strExtension isEqualToString:@"jpeg"] || [strExtension isEqualToString:@"jpg"]) {
NSLog(@"######v %@",[[request URL] path]);
QLPreviewController *previewController = [[QLPreviewController alloc] init];
ImageViewController *imagecontrller = [[ImageViewController alloc] init];
previewController.dataSource = imagecontrller;
previewController.delegate = imagecontrller;
[imagecontrller setImageURL:[request URL]];
previewController.currentPreviewItemIndex = 0;
[parentvc.navigationController presentModalViewController:previewController animated:YES];
[previewController release];
UIAlertView* alertView=[[UIAlertView alloc] initWithTitle:@"Alert" message:imageName delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];
[alertView show];
[alertView release];
//[imagecontrller release];
return NO;
}else {
return YES;
}
}