2013-02-04 1 views
0

Object-C를 배우고 배우기위한 테스트 앱을 작성 중입니다. 이것은 쉬운 응용 프로그램입니다. 첫 번째보기에서 버튼을 누르고 두 번째보기 (컬 애니메이션 사용)로 이동하여 텍스트 필드를 채운 다음 버튼을 눌러 필드의 내용을 첫 번째보기로 전달합니다.Xcode 4.6을 사용하여 두보기간에 데이터 전달

그래서 2 개의보기를 만들고 첫 번째보기에 단추와 레이블을 배치하고 마우스 오른쪽 단추를 사용하여 첫 번째보기에서 단추를 두 번째보기에 연결하고 작업 모달을 사용하여 선을 끌었습니다. 두 번째보기에서

, 나는 다음과 같은 코드를 작성 : ViewController2.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    self.firstTextField.delegate = self; 
} 

- (IBAction)passTextToVC2Button:(id)sender { 
    ViewController *VC2 = [self.storyboard instantiateViewControllerWithIdentifier:@"wb_ViewController"]; 

    VC2.stringFromTextField1 = self.firstTextField.text; 

    [self presentViewController:VC2 animated:YES completion:nil]; 
} 

응용 작품

ViewController2.h

@property (weak, nonatomic) IBOutlet UITextField *firstTextField; 
@property (strong, nonatomic) NSString *stringFromVC2; 

- (IBAction)passTextToVC2Button:(id)sender; 

을,하지만 난 버튼에서을 누르면 ViewController2로 돌아가서 ViewController로 돌아가서 Curl 애니메이션을 애니메이션화하지 않습니다. 단지 페이지 하단에서 ViewController 아래 새 창 (ViewController)이 나타납니다. h Curl 애니메이션.

[self dismissViewControllerAnimated:YES completion:nil]; 

대신 :

가 나는 또한 사용하려고

[self presentViewController:VC2 animated:YES completion:nil]; 

이 경우, 두 번째보기를 닫습니다하지만 첫 번째보기의 레이블 텍스트로 표시되지 않는다 두 번째보기에 삽입했습니다.

내가 말했듯이, 나는 초보자이기 때문에 공부하고있다. 잠시만 기다려주세요.

답변

1

이렇게하는 방법은 첫 번째보기 컨트롤러가 준수하는 대리인 프로토콜을 정의하고 두 번째보기 컨트롤러가 메시지를 보내서 값을 다시 전달할 수 있습니다.

나는이 질문에 몇 번 대답해야했기 때문에 매우 간단하게 example project을 만들었습니다. 이를 다운로드하고 컨트롤러 스택으로 데이터를 다시 전달하는 방법을 살펴보십시오.

업데이트

나는 ARC와 스토리 보드와 iOS6의에 대한 새로운 프로젝트에 샘플을 변경했습니다.

+0

답변 해 주셔서 감사합니다. 프로젝트를 다운로드했으며 질문이 있습니다. 나는 스토리 보드를 사용하고 xib을 사용하는 것을 보았다. 정말 다른가요? 스토리 보드는 모든 파일을 하나의 파일로 다시 그룹화하기 위해 태어났습니다. 내가 잘못? – Mark

+0

틀렸어. 그것은 2011 년에 제가 쓴 오래된 예입니다. 대표단의 원칙은 같습니다. 프로젝트를 iOS 6 및 ARC 및 스토리 보드로 업데이트 해 보겠습니다. – Abizern

+0

답변과 예제를 이용해 주셔서 감사합니다. – Mark

관련 문제