2015-02-07 3 views
1

내 앱에서 한 번에 5 개의 이미지를 선택하고 작은보기로 표시하고 버튼을 클릭하면 해당보기의 5 개 이미지가 다음 View Controller로 이동해야하지만 버튼을 클릭 할 때 0 번째 인덱스의 이미지 만 지나가고 나머지 이미지는 지나치지 않습니다. 누군가가 나를 도와 줄 수 있습니다.한 번에 여러 이미지를 다른보기로 전달하는 방법?

그리고 여기 내 코드입니다.이 코드는 첫 번째 뷰에서 두 번째 뷰로 넘어가고 selectedImages는 모든 선택된 이미지

SecondViewController *secview=[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil]; 
if (secview.imgView.tag==0) { 
secview.img=[self.chosenImages objectAtIndex:0]; 
} 
else if (secview.imgView1.tag==1) 
{ 
secview.img=[self.chosenImages objectAtIndex:1]; 

} 
else if (secview.imgView1.tag==2) 
{ 
secview.img=[self.chosenImages objectAtIndex:2]; 

} 
else if (secview.imgView1.tag==3) 
{ 
secview.img=[self.chosenImages objectAtIndex:3]; 

} 
else if (secview.imgView1.tag==4) 
{ 
secview.img=[self.chosenImages objectAtIndex:4]; 

} 
NSLog(@"%@",secview.img); 
[self presentViewController:secview animated:YES completion:nil]; 

을 절약하고 두번째보기에 내 코드는 다음과 같습니다

,210

업데이트 : didFinishPickingMedia에서이 코드

images = [NSMutableArray arrayWithCapacity:[info count]]; 
for (NSDictionary *dict in info) { 
if ([dict objectForKey:UIImagePickerControllerMediaType] == ALAssetTypePhoto){ 
if ([dict objectForKey:UIImagePickerControllerOriginalImage]){ 
image=[dict objectForKey:UIImagePickerControllerOriginalImage]; 
[images addObject:image]; 
UIImageView *imageview = [[UIImageView alloc] initWithImage:image]; 
[imageview setContentMode:UIViewContentModeScaleAspectFit]; 
} 

} 
else { 
NSLog(@"UIImagePickerControllerReferenceURL = %@", dict); 
} 
} 
self.chosenImages = images; 
[AllImages setHidden:NO]; 
previousButtonTag=1000; 
scrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 4,  self.AllImages.frame.size.width, 104)]; 
int x =0.5; 
for (int i=0; i<5; i++) { 
     button = [UIButton buttonWithType:UIButtonTypeCustom]; 
     button.frame=CGRectMake(x, 0, 100, 123); 
     button.layer.borderWidth=0.5; 
     button.titleLabel.font=[UIFont boldSystemFontOfSize:12]; 
     button.titleLabel.textAlignment = NSTextAlignmentCenter; 
     button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; 
     // button.layer.borderColor=[[UIColor lightGrayColor]CGColor]; 
     button.tag = i; 
     [button setBackgroundImage:[self.chosenImages objectAtIndex:i] forState:UIControlStateNormal]; 
     [button addTarget:self action:@selector(OverLayMethod:) forControlEvents:UIControlEventTouchUpInside]; 
     [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
     [scrollView addSubview:button]; 
     x += button.frame.size.width; 
     x=x+6.0; 
    } 
    scrollView.contentSize = CGSizeMake(x, scrollView.frame.size.height); 
    scrollView.backgroundColor = [UIColor clearColor]; 
    [self.AllImages addSubview:scrollView]; 
} 
+0

이 destinationview에 하나 개 더있는 UIImage 객체를 생성하고 그 객체와 이미지를 전달 올바른 출력을 얻고있다. –

+0

답장을 보내 주셔서 감사합니다. @Darshan Kunjadiya .. img는 두 번째보기 자체의 객체입니다. –

답변

1

두 번째보기에서 다른 배열을 선언하여 내 문제를 해결했습니다. 첫 번째보기에서 하나의 배열에 저장된 이미지를 저장합니다 .so 첫 번째보기 배열 개체 = 두 번째보기 배열 및 두 번째보기에서 해당 배열 전달 된 내 코드 두 번째보기 :이에 의해

for (int i=0; i<[arr count]; i++) { 
self.img=[arr objectAtIndex:i];  
if (i==0) 
{ 
imgView.image=img; 
} 
else if (i==1) 
{ 
imgView1.image=img; 
} 
else if (i==2) 
{ 
imgView2.image=img; 
} 
else if (i==3) 
{ 
imgView3.image=img; 
} 
else if (i==4) 
{ 
imgView4.image=img; 
} 
}  


} 

내가

0

내가 질문을 가지고 있음을 몰라 쓴 그러나 나의 이해는 다른보기로 5 개 이미지를 전송할 싶어한다는 것입니다. 그렇다면, 그러한 당신의 SecondViewController에서 '이미지'로 새로운 NSArray를 속성을 정의하고 코드와 두 번째

SecondViewController *secondVC = [SecondViewController new]; 
[secondVC setImages: self.chosenImages]; 

문제 먼저보기에서 이동하는 위치에 추가하면 경우/다른 경우에 사용하고 있다는 것입니다 block 문과 if/else 조건 중 하나가 true로 평가되는 경우에만 블록 중 하나에 들어갑니다. 또한 -objectAtIndex : 하나의 항목 만 반환합니다.

[self.chosenImages objectAtIndex:0]; 

또한, 나는 secview.img 당신이 당신의 SecondViewController 내부에있는 UIImage 속성이 있음을 의미 확신 해요.

+0

답장을 보내 주셔서 감사합니다. @ user4130613 이것이 추가되면이 객체는 전달되는 객체가 없음을 보여줍니다. –

관련 문제