0

ViewControllers 사이에 데이터 공유 변경 및 언제 그것을 viewController 화면 (특정 풍경에 대한) 밀어아이폰 OS - 나는 경우 인터페이스의 방향을 관찰 할 NSNotifications을 사용하고 가로 방향</p> <p>나의 첫 VC (portraitVC가) 여러 UITextFields있다 (그 중 약 30) 의 목적을 위해 2 ViewControllers이

내 질문은 지금, 내 UITexFields 공유 할 수 있습니다 VC 중 둘 다 내가 세로 모드로 갈 때 다음 입력 할 경우처럼 TextField에 입력 한 텍스트를 잃지 마십시오. 다른 방법으로도 작업해야합니다.

당신은 도움이되거나 매우 감사합니다.

+1

가 (소스 포함) 좋은 가이드입니다 : http://iphonedevsdk.com/forum/iphone-sdk-development/54859-sharing 당신은 다음과 같은 일을 진행하여 벤처 캐피탈의 각 방법을 필요 - 데이터 사이 - 뷰 - 컨트롤러 - 및 - 기타 - 오브젝트 링크 - fixed.html –

답변

1

나는 이것을 처리 할 수있는 몇 가지 방법을 생각할 수 있습니다.

첫째, 방향 변경을 처리하기 위해 두 개의 서로 다른 벤처를 사용하도록 선택을 재고. 첫 번째 VC에서 UI를 업데이트하여 세로로보기 좋게 보는 것이 얼마나 힘듭니다?

둘째, 당신이 앞뒤로 두 개의 벤처 캐피탈

@interface MyDataStorage : NSObject { 
    NSString* text1; 
    NSString* text2; 
    NSString* text3; 
    NSString* text4; 
} 

마지막으로 사이를 통과 할 수 있도록, 당신은 동기화에있는 두 개의 벤처 캐피탈을 유지하는 프로토콜을 만들 수 밖으로 데이터 구조체 나 클래스에 추상적 :

@protocol VCSync : NSObject { 
- (void)updateTextBox1:(NSString*)contents; 
- (void)updateTextBox2:(NSString*)contents; 
... 
} 

당신이 당신의 텍스트 상자의 위임 콜백에서 해당 메소드를 호출 할 수 있도록 당신은 다른 VC에 대한 참조를 유지해야합니다.

RE : 문서 링크

이 구절을 참조하는 경우 : There are better ways to provide unique views for different orientations, such as presenting a new view controller 다음 이전 문장을 읽어야합니다. 당신이 당신의 전체 뷰 계층을 교환하는 경우

새로운 VC

에만 좋습니다. 텍스트 상자의 크기 만 조절하는 경우 willAnimateRotationToInterfaceOrientation:duration:에 코드를 작성하면 하나의 VC에서 다른 VC로 정보를 이동할 필요가 없기 때문에 가능합니다.

다른 VC로 계속 진행하기로 결정한 경우 필요에 따라 NSString 또는 NSAttributedString 개의 묶음이 포함 된 클래스를 만듭니다.

다음
- (void)updateTextboxesWithData:(MyDataStorage*)data { 
    for(UITextbox in self.textboxes) { 
     t.text = data.string; 
    } 
} 
+0

은 빠른 응답 클레이 주셔서 감사합니다 - 잘 나는 풍경이 완전히 다른보고 싶어요 - 애플 문서, HTTPS에 따라 : // 개발자. apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/RespondingtoDeviceOrientationChanges/RespondingtoDeviceOrientationChanges.html은 - 그들은 2 개의 별도 VC의 사용을 권장합니다 - 당신이이 일을 생각할 수있는 다른 어떤 방법으로? - 공유해주세요. –