iOS에 약간의 문제가 있습니다. 프로토콜을 사용하고 수동으로보기를 전환하는 두보기 컨트롤러간에 데이터를주고 받고 있습니다. 내 문제는 상위 뷰를 닫을 때 하위 뷰의 viewDidLoad가 다시 호출되지 않는다는 것입니다. 두 번째보기에서 첫 번째보기로 정보를 전송할 때 viewDidLoad를 호출해야 전달할 정보를 처리 할 수 있습니다. 이 작업을 수행하는 방법에 대한 아이디어가 있으면 도움을 받으실 수 있습니다. 고맙습니다.viewDidLoad를 수동으로 호출하려면 어떻게해야합니까?
답변
사용 -(void)viewDidAppear:(BOOL)animated
대신 I 앞뒤로 두 뷰 프로토콜을 이용하여 제어기와 수동 전환 뷰 사이에서 데이터를 전달하고
마지막으로, 함수를 호출하면 내 프로토콜이 null 값을 반환합니다. 이것에 대한 공통된 이유가 있습니까? – CoffeeIsProgramming
@Adam 일부 코드 (어쩌면 다른 질문)를 게시하십시오. 이 정보로 말하기가 어렵습니다. –
의
viewDidLoad
. 내 문제는 상위 뷰를 닫을 때 하위 뷰의 viewDidLoad가 다시 호출되지 않는다는 것입니다. 두 번째보기에서 내 첫 번째보기로 정보를 전송하기 때문에 viewDidLoad를 호출해야합니다.
아니요, 당신이 생각하는 사실로 인해 다른 것이 잘못 될 수도 있습니다. 이리.
이 고려 : 당신이 진정으로 첫 번째, 다음 첫 번째 뷰 컨트롤러 에서 두 번째 뷰 컨트롤러에서 다시 데이터를 전달하는 경우 것이 데이터를 가지고 있으며, 지금 자체 를 업데이트 할 수 있습니다. 존재하고보기가 있습니다. 따라서 데이터를 넘길 때 현장에서 업데이트해야합니다. 그런 다음 두 번째보기 컨트롤러를 닫으면 첫 번째보기 컨트롤러의보기가 나타납니다 - 이미 업데이트되었습니다. 사실, 두 번째보기 컨트롤러를 닫으려면 은 모두 첫 번째보기 컨트롤러의보기를 보여줍니다.이보기는 표시되지 않았지만 업데이트되었습니다.음, 데이터가 전달되는 데이터를 "처리"할 장소가 필요하다는 것입니다. 예를 들어 문자열 배열을 전달하고이를 모델에 전달하는 등의 작업을하고 싶습니다. viewDidLoad가 아닌 경우 어떻게합니까? 뷰를 포 그라운드로 배치하려면 터치 이벤트가 호출됩니다. 두 번째보기를 제시하기 위해 전화 한 직후에이 터치 이벤트에서 처리 할 수 있습니까? – CoffeeIsProgramming
정말로 데이터를 되돌려 보내는 경우 첫 번째보기 컨트롤러에서 메서드를 호출하여 데이터를 전달합니다. 이제 첫 번째보기 컨트롤러가 작동 중입니다! 그것은 어떤 방법으로 문자열의 배열을받으며, 그 방법의 바로 그곳에서 무엇이든 할 수 있습니다. – matt
그럼이게 맘에 든다. 내 터치 이벤트가 뷰를 호출하여 첫 번째 뷰에 배치됩니다. 그런 다음 두 번째보기에서 단추를 클릭하면 특정 데이터가 설정됩니다.두 번째보기가 해제되면 해당 데이터가 다시 전달됩니다. – CoffeeIsProgramming
- (void)viewDidLoad {
[super viewDidLoad];
}
뷰 컨트롤러가 메모리에 처음로드 될 때 정확히 한 번 호출됩니다. 여기서 인스턴스 변수를 인스턴스화하고이 뷰 컨트롤러의 전체 수명주기 동안 살아있는 뷰를 빌드하고자합니다.
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
}
는
- 1. 스윙에서 액션을 수동으로 호출하려면 어떻게해야합니까?
- 2. ToggleButton - 수동으로 onClick 수신기를 호출하려면 어떻게해야합니까?
- 3. iPhone에서 UIView의 터치 이벤트를 수동으로 호출하려면 어떻게해야합니까?
- 4. viewdidload를 무효화하려면 어떻게해야합니까?
- 5. dll에서 함수를 호출하려면 어떻게해야합니까?
- 6. Node.js에서 Ruby를 호출하려면 어떻게해야합니까?
- 7. 배열로 text_field_tag를 호출하려면 어떻게해야합니까?
- 8. SAP에서 ActiveX를 호출하려면 어떻게해야합니까?
- 9. 개체에 '! ='메서드를 호출하려면 어떻게해야합니까?
- 10. JDBC에서 getter를 호출하려면 어떻게해야합니까?
- 11. Timer를 메서드로 호출하려면 어떻게해야합니까?
- 12. Tomcat으로 Https를 호출하려면 어떻게해야합니까?
- 13. 메소드를 호출하려면 어떻게해야합니까? Java에서
- 14. 함수를 다시 호출하려면 어떻게해야합니까?
- 15. 다른 사이트를 호출하려면 어떻게해야합니까?
- 16. 메소드를 호출하려면 어떻게해야합니까?
- 17. LuisIntent에서 PromptDialog를 호출하려면 어떻게해야합니까?
- 18. 컨트롤러에서 모델을 호출하려면 어떻게해야합니까?
- 19. 개인 기능을 호출하려면 어떻게해야합니까?
- 20. setCenterCoordinate를 올바르게 호출하려면 어떻게해야합니까?
- 21. audioPlayerDidFinishPlaying을 호출하려면 어떻게해야합니까?
- 22. 템플릿에서 메서드를 호출하려면 어떻게해야합니까?
- 23. 이미지를 동적으로 호출하려면 어떻게해야합니까?
- 24. appDelegate에서 viewdidload를 호출하십시오.
- 25. dismissViewControllerAnimated가 viewDidLoad를 다시로드하지 않음
- 26. 시작시 viewDidLoad를 다시 실행하십시오.
- 27. UISwitch ViewDidLoad를 설정합니다.
- 28. relaodData가 viewDidLoad를 호출하는 이유
- 29. 이름에서 라이브러리 함수를 호출하려면 어떻게해야합니까?
- 30. 클릭시 맞춤 플러그인을 호출하려면 어떻게해야합니까?
또 다른 가능한 뷰가 실제로 볼 때 호출되는, 그리고 뷰 컨트롤러의 수명주기 동안 여러 번 호출 할 수 있습니다 (모달보기 컨트롤러 해제 할 때 예하고 뷰를 다시 표시된다) 해결 방법은 두 컨트롤러 모두 동일한 모델을 공유하도록하는 것이지만 어떻게 할 것인지 확실하지 않습니다. – CoffeeIsProgramming
viewDidLoad에서 로직을 이동하십시오. 너는 그걸 부르면 안돼. 더 나은 장소는 viewDidAppear :일지도 모르지만 실제로 통신을위한 프로토콜이 이미 있으므로 가장 좋은 장소는 변경된 내용을 전달하기 위해 해당 프로토콜을 사용하는 것입니다. 그러면 첫 번째보기는 해당 프로토콜 메시지를받을 때 자체를 업데이트 할 책임이 있습니다. – Anurag