2013-05-28 4 views
0

tableView이 있는데 jpg 및 mp4 파일이 포함 된 콘텐츠 디렉토리가 나열되어 있습니다.iPhone - UITableView to DetailView

현재 mp4 파일을 선택하면 MPMovieController이로드되고 그에 따라 올바른 파일이 재생되지만 파일의 확장명이 JPG 인 경우 자세한보기를로드하는 방법이 확실하지 않습니다.

tableView에서 선택된 파일이 화상 파일 인 경우, 예를 들어, 그 화상을 표시 할 수있는 detailViewimageView을 연다.

다른 파일의 경우 알려지지 않은 파일이라는 점에서 alertView을 푸시합니다.

매우 편리 할 것입니다 지금까지 tableview didSelectRowAtIndex

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

{static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView 
         dequeueReusableCellWithIdentifier:CellIdentifier]; 


NSString *urlString = [NSString stringWithFormat:@"http://10.1.4.3:8080/DCIM/DCIM/VIDEO/%@",[movieArray objectAtIndex:indexPath.row]]; 

//Play multiple video 
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

_moviePlayer = [[MPMoviePlayerController alloc] 
       initWithContentURL:url]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:_moviePlayer]; 

_moviePlayer.controlStyle = MPMovieControlStyleDefault; 
_moviePlayer.shouldAutoplay = YES; 
[self.view addSubview:_moviePlayer.view]; 
[_moviePlayer setFullscreen:YES animated:YES];} 

모든 링크 또는 소스 코드 내가 가지고있는 코드입니다.

감사합니다.

+0

즉, 셀을로드 할 때 어떤 유형의 파일을 포함 할 수 있는지 알 수 없습니까? –

+0

@RatikantaPatra 셀이 제대로 표시되고 mp4 파일이로드되지만 JPG가 선택되면 detailedView로 이동해야합니다. – teejay

+0

해당 JPG 이미지를 보유하기 위해 내부에 imageView가 포함 된 사용자 정의 세부 뷰가 있어야합니다. –

답변

0

는이 코드를 테스트하지 않았습니다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView 
          dequeueReusableCellWithIdentifier:CellIdentifier]; 

    /* ============================== THIS DO THE TRICK ============================ */ 
    NSString *kind = nil; 
    NSString *path = [NSString stringWithFormat:@"http://10.1.4.3:8080/DCIM/DCIM/VIDEO/%@", [movieArray objectAtIndex:indexPath.row]]; 
    NSString *ext = [[path pathExtension] lowercaseString]; 

    if([ext isEqualToString:@"jpg"] || [ext isEqualToString:@"png"] || [ext isEqualToString:@"jpeg"]) { 
     UIViewController *imageController = [[UIViewController alloc] init]; 
     UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:path]]]]; 

     CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 

     [imageController.view setFrame:frame]; 
     [imageView setFrame:frame]; 
     [imageController.view addSubview:imageView]; 
     [imageView release]; 

     [self presentModalViewController:imageController animated:TRUE]; 

     [imageController release]; 
    } 
    /* ============================================================================= */ 
    else { 
     NSString *urlString = path; 

     //Play multiple video 
     NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

     _moviePlayer = [[MPMoviePlayerController alloc] 
         initWithContentURL:url]; 

     [[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(moviePlayBackDidFinish:) 
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:_moviePlayer]; 

     _moviePlayer.controlStyle = MPMovieControlStyleDefault; 
     _moviePlayer.shouldAutoplay = YES; 
     [self.view addSubview:_moviePlayer.view]; 
     [_moviePlayer setFullscreen:YES animated:YES]; 
    } 
} 
+0

jpg, jpeg 및 png에서만 작동합니다 ... –

+0

관리하려는 경우 IF 조건에 확장 유형을 추가하십시오. –

0

MPMoviePlayerController를 사용하므로 xcode에서 파일을 처리하므로 (완료된 후 동영상을 재생하고보기를 닫는보기가 생성됩니다).

이미지를 표시하려면 닫기 버튼을 사용하여 사용자 정의보기를 만드십시오 (보기를 닫아야하기 때문에). 이 사용자 정의보기에서 UIImageView를 추가하고 이미지를 표시하십시오. 내가

그러나 시간이 작동해야하지 않았기 때문에

+0

이 작업을 수행하는 자습서 나 소스 코드를 제공 할 수 있습니까? @dementiazz – teejay