首先,我是Objective C世界的新手,所以我的問題可能聽起來很樸素。即使是方法的結構可能也不太合適,所以對我很好。我相信隨着我的前進,我會學習。presentModalViewController無法顯示
我有一個容器視圖控制器「DeckViewController」,其容納另一個視圖控制器「CardDetails」。 CardDetails有一個滾動視圖,用於加載3個自定義UIView(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;
}
}
您可能希望將問題中的文本結構化一些,以便於閱讀。例如進入某些部分。 – lbergnehr
感謝您指出。我將來肯定會這樣做。 – Chandan