프로필 사진을 변경하면 이미지를 클릭하면 다음 화면으로 넘어 가서 갤러리에서 선택하거나 사진을 찍으라는 메시지가 표시됩니다. 갤러리에서 선택한다고 가정하면, 두 번째 화면으로 들어가고 이미지가 나타납니다. 제 질문은 두 번째 화면에서 완료 버튼을 클릭하면 이미지가 첫 번째 화면에서 변경 될 것입니다. 즉 프로필 사진입니다. 첫 화면에서 변경 될 수있는 방법은 무엇입니까?이미지에서 완료 버튼을 클릭하면 이전 UIviewController에서 변경됩니까?
답변
SecondViewController
클래스에 대리인을 만듭니다. 이 대리자를 FirstViewController
클래스에 할당하고 구현합니다.
사용자가 갤러리에서 이미지를 선택하거나 사진을 클릭하면 대리자 메서드를 호출하여 선택한 이미지를 FirstViewController
클래스로 전달합니다. 이를 구현하기 위해
샘플 코드는
다음과 같이 SecondViewController.h
// Declare delegate
@protocol ImageSelectionDelegate <NSObject>
- (void) imageSelected:(UIImage*)image;
@end
@interface SecondViewController : UIViewController
// Delegate property
@property (nonatomic,assign) id<ImageSelectionDelegate> delegate;
@end
SecondViewController.m
@implementation SecondViewController
// In case you are using image picker, this delegate is called once image selection is complete.
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//Use either according to your setting, whether you allow image editing or not.
UIImage *myImage = [info objectForKey:UIImagePickerControllerEditedImage];
//For edited image
//UIImage *myImage = [info objectForKey:UIImagePickerControllerOriginalImage];
if([_delegate respondsToSelector:@selector(imageSelected:)]) {
[self.delegate imageSelected:myImage];
}
}
//OR
// Done button click
- (IBAction)doneButtonClick:(id)sender
{
// You can store the image selected by user in a UIImage pointer.
// Here I have UIImage *selectedImage as an ivar.
// Call the delegate and pass the selected image.
if([_delegate respondsToSelector:@selector(imageSelected:)]) {
[self.delegate imageSelected:selectedImage];
}
// Pop the view controller here
}
@end
FirstViewController.h
#import "SecondViewController.h"
@interface FirstViewController : UIViewController <ImageSelectionDelegate>
@end
FirstView입니다 Controller.m
@implementation FirstViewController
- (void) onImageClick {
SecondViewController *controller = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
// Assign delegate
controller.delegate = self;
[self.navigationController pushViewController:controller animated:YES];
}
// Implement delegate method
- (void) imageSelected:(UIImage *)image {
// Use image
}
@end
왜 secondviewcontroller 밀어. secondviewcontroller 완료 단추가 있습니다. 그래서 우리는 secondviewcontroller에서 팝업 할 수 있습니까? – Vijayendra
두 번째보기 컨트롤러를 모달로 표시하면 괜찮습니다! 네비게이션 스택을 밀어 넣을 필요가 없습니다. – Amar
아니요. secondviewcontroler에서 done 버튼을 클릭하면 firstrviewcontroler에서 변경되므로 popviewcontroller를 사용할 수 있습니까? – Vijayendra
- 1. 버튼을 클릭하면 Tkinter 화면이 변경됩니까?
- 2. , "이전", "다음", "완료"버튼을
- 3. 버튼을 클릭하면 다른 div의 배경색이 변경됩니까?
- 4. 미리보기 버튼을 클릭하면 페이지 배경이 변경됩니까?
- 5. 버튼을 클릭하면 이전 페이지로 리디렉션됩니다.
- 6. 클릭하면 CSS 클래스가 변경됩니까?
- 7. 클릭하면 이미지가 변경됩니까?
- 8. 클릭하면 아이콘이 변경됩니까?
- 9. 완료 버튼을 클릭하면 내 프로필 사진 이미지를 변경하는 방법 첫 번째보기에서 이미지가 변경됩니까?
- 10. 뒤로 버튼을 클릭하면 이전 의도가 계속 표시됩니다.
- 11. jQuery DatePicker가 다음/이전 버튼을 클릭하면 사라집니다.
- 12. asp.net에서 이전 버튼을 클릭하면 값을 저장하는 방법
- 13. 자세한 활동에서 이전/다음 버튼을 클릭하면 다음/이전 항목으로 이동합니다.
- 14. 텍스트를 클릭하면 MYSQL에서 값이 변경됩니까?
- 15. 컨트롤을 클릭하면 어떤 속성이 변경됩니까?
- 16. 이미지에서 이미지 변경 클릭하면 볼 수 있습니다.
- 17. 이전 Android 활동 완료
- 18. 불투명도 방법 버튼을 클릭하면 완료 될 때까지 완료됩니다.
- 19. UIViewController에서 오는 textview 숨기기
- 20. 클릭하면 링크 색상을 어떻게 변경합니까? 다른 링크를 클릭하면 다시 변경됩니까?
- 21. 다른 UIViewController에서 이전 UIViewController에 UIView를 생성하십시오.
- 22. Mobile Safari 날짜 입력에서 이전/다음/완료 버튼을 어떻게 얻습니까?
- 23. 두 번 클릭하면 div의 색상이 변경됩니까?
- 24. jquery가있는 링크를 클릭하면 div 콘텐츠가 변경됩니까?
- 25. 클릭하면 이미지 스프라이트로 Z- 색인이 변경됩니까?
- 26. 클릭하면 확장 가능한 목록보기 이미지가 변경됩니까?
- 27. 클릭하면 iPhone 버튼 텍스트 색상이 변경됩니까?
- 28. noHistory로 이전 활동 완료
- 29. 셀렉트 이전 행 완료
- 30. 버튼을 클릭하면 쿠키가 재설정됩니다.
두 번째보기 컨트롤러에서 이미지 선택 대리자를 만들고 첫 번째보기 컨트롤러로 할당합니다. 사용자가 이미지를 선택하면 해당 이미지를 대리자 콜백에 전달합니다. – Amar
이미지 위임을 만드는 방법은 무엇입니까? – Vijayendra
아래 내 대답을 확인 – Amar