2009-05-25 4 views
1

현재 2 개의보기를 만들고 첫 번째보기에는 다음 단추가 있습니다.이 단추를 클릭하면 두 번째보기로 이동합니다.보기 상태 저장 iphone sdk

두 번째보기에서 레이블의 일부 값을 설정하고 다시 클릭하면 첫 번째보기로 돌아갑니다.

문제점 : 이제 첫 번째보기로 돌아 왔는데, 다음 단추를 다시 누르면 두 번째보기에서 설정 한 레이블 값이 손실됩니다.

질문 : 다음 버튼을 클릭하면 레이블이 이전에 설정되었음을 감지하고 이전 값을 다시 표시하도록 상태를 저장할 수 있습니까?

답변

1

에 달려 있습니다. 다양한 방법이 있습니다.

두 번째보기를 화면에 누를 때마다 새보기가 생성 될 것으로 예상됩니다. 어떤 경우 든 뷰의 존재 여부와 상관없이보기에서 데이터를 유지할 것을 기대하기보다는 모델의 레이블 값을 저장해야합니다 (MVC 디자인 패턴 참조). 그런 다음 두 번째보기 컨트롤러의 -viewDidLoad: 함수에서 레이블 값을 이전 값으로 설정하십시오.

+0

안녕하세요. 회신 해 주셔서 감사합니다. 예, 나는 당신이 viewDidLoad 함수에서 값을 설정하는 것을 제안 할 수 있습니다. 또한 다른 방법은 무엇입니까? 우리가 일반적으로 많은 데이터를 가지고 있다면 더 효율적인 방법이 있을까요? –

1

MVC는 (는) 친구입니다.

보기에는 모델에 저장된 데이터 만 표시됩니다. 따라서 사람 정보를 표시하면 데이터는 사람 개체에 저장됩니다. 보기에는 데이터를 읽을 수 있도록 표시하는 개인 오브젝트에 대한 참조가 있습니다. 보기는 사람 객체에 대한 어떤 데이터도 설정하지 않습니다. 이것은 컨트롤러를 통해 이루어집니다. 컨트롤러는 두 모델 모두에 대한 참조를 보유하여 모델 (데이터)과 뷰를 연결합니다.

사용자가 표시되는 항목 (예 : 사용자 이름 수정)을 클릭하면 새로운 이름으로 사람의 모델을 업데이트하는 컨트롤러가이를 처리합니다. 작업이 완료되면 컨트롤러는보기에서 모델의 데이터를 다시 표시하도록 요청합니다.

Apple의 참고 자료에서 Model-View-Controller 및 UIViewController를 살펴보십시오.