2017-10-22 8 views
0

Xcode보기 편집기와 Swift로 작업하고 있습니다.Segue 후 @IBOutlets을 잃는

두 개의 탭이있는 탭 표시 줄 컨트롤러가 포함 된 내 기본보기가 있습니다. 두 번째 탭에는 @IBoutlet var myLabel: UITextLabel!이 있습니다. 안으로 viewWillAppear 나는이 레이블에 몇 가지 텍스트를 넣어.

첫 번째 탭에는 Push Segue를 통해 세 번째보기를 시작하는 단추가 있으며이 새 탭에는 탭 단추 컨트롤러가 포함 된 기본보기로 되돌아 오는 Back 단추가 있습니다. segue도 푸시).

내 앱을 실행하면 내 두 번째 탭으로 이동하여 UITextLabel의 텍스트가 변경됩니다. 나는 여전히 내 첫 번째 탭으로 이동하여 작동 할 수 있습니다. 하지만 문제는 첫 번째 탭의 버튼을 클릭 한 다음 취소 할 때 두 번째 탭으로 돌아가는 경우 UITextLabel이 변경되지 않습니다. 그리고 더 이상 아무런 조치도 취할 수 없습니다. 그것은 아니지만 아니지만 그것은 여전히 ​​첫 번째 UITextLabel 전에 segue 및이 아닌 연결되어 있습니다.

어디서 잘못 되었나요?

답변

1

몇 가지 문제가 있습니다.

탭이있는 응용 프로그램에서 Apple은 탭 표시 줄 컨트롤러가 응용 프로그램의 루트 수준 탐색 방법이어야한다고 말합니다. 항상 있어야하며 사용자는 앱의 다른 부분으로 전환하기 위해 항상 다른 탭을 탭할 수 있어야합니다.

그래서 첫 번째 탭은 내비게이션 컨트롤러에 연결해야합니다. 사용자가 버튼을 누르면 새로운보기 컨트롤러를 해당 탐색 컨트롤러로 밀어 넣어야합니다. 탭 표시 줄은 계속 표시되고 활성화되며 사용자는 여전히보기 컨트롤러 1로 전환 할 수 있습니다.

다음 일 :

당신은. "나는 (너무 푸시 SEGUE 통해) 탭 표시 줄 컨트롤러를 포함하는 기본보기로 다시 저를 얻는 돌아 가기 버튼이 있습니다"라고

아주 잘못되었습니다. 뒤로 버튼은 현재 탐색 스택에서 뷰를 팝합니다. 그들은 아무것도 추진해서는 안됩니다. Push Segue를 사용할 때마다 View Controller의 새로운 인스턴스를 생성 및 푸시하고 다른 View Controller를 탐색 스택에 남겨 둡니다.

관련 문제