그 안에 특정 값이있는 여러 개의 UILabel이 있습니다. 다른 viewController로 전환하고 원래 뷰로 컴백하면 UILabel의 값이 손실됩니다. 두 viewController를 통해 전환하는 동안 정보를 유지하려면 어떻게해야합니까?viewController 사이를 전환 할 때 UILabel에 정보를 저장하는 방법
답변
내가 제공 한 정보로 얻을 수있는 가장 좋은 대답은 viewWillDisappear
을 사용하여 viewController의 속성에 레이블 값을 저장하는 것입니다. 그러나 정보가 레이블에 어떻게 들어 갔습니까? 가장 좋은 방법은 레이블에 정보가 어떻게 든 설정되면 viewController의 속성에 값을 저장하는 것입니다. 그런 다음 viewWillAppear
에 백업 속성의 라벨을 채우는 코드가 있어야합니다. 그런 식으로 UI에 어떤 상태도 저장하지 않고 (나쁜) 사용자가 viewController에서 정보/상태의 흐름을 한 방향으로 향하게합니다 (예 : 레이블에 정보를 입력하지 않고 정보를 꺼내는 것).).
메모리 부족 경고로 인해 레이블이 분리되었을 수 있습니다. 다시 레이블이로드되면 값을 레이블로 설정해야합니다. 레이블에 값을 viewDidLoad
으로 설정해야합니다.
viewDidLoad의 "레이블에 값 설정"예제 – TWcode
labelName.text = @ "Value"; – Ilanchezhian
어떤 ViewController입니까? 양자 모두? – TWcode
문제를 해결하는 간단한 방법은 NSUserDefault
의 정보와 레이블에도 정보를 저장하는 것입니다. 다시보기 컨트롤러로 전환 할 때 NSUserDefault
의 레이블에 값을 viewWillAppear
으로 가져옵니다. 희망이 작동합니다.
라벨과 함께 NSUserDefault를 사용하는 코드 예제를 제공 할 수 있습니까? – TWcode
NSUserDefaults는 앱의 설정, 환경 설정 및 기타 정보를 저장하기위한 것입니다. 데이터 저장소가 아닙니다. 그건 끔찍한 제안처럼 들리지만 나는 당신이 그것을하지 말 것을 당부합니다. –
정보는 keybaord 항목 및/또는 버튼 누름에 의해 입력됩니다. – TWcode
UITextField에서 키보드 입력을받은 다음 UILabel의 텍스트 속성으로 설정하는 UITextField가 있습니까? 이 경우 레이블의 텍스트 속성을 설정할 때 키보드 입력을 viewController의 속성에 저장하기 만하면됩니다. –
UILabel (IBAction) 코드 안에 무엇을 넣을 수 있습니까? 내 2 UILabels 다음과 다시 있습니다. 두 개의 IBAction 버튼이 있습니다. – TWcode