나는 ViewController
클래스를가집니다.UIViewController와 범주 충돌 사이의 데이터 전달
(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
이 항목의 세부 사항을 엽니 다 : 그것은 실행하는 카테고리 ViewController (Details)
있습니다.
ViewController
클래스에 새 버튼을 추가 할 때 NSArray *myData
이라는 데이터를 다른 컨트롤러 (예 : SearchController
)로 전달하고 싶습니다. 그러나 내 prepareForSegue
은 내부에 ViewController (Details)
이므로 실행되지 않습니다. 따라서 prepareForSegue
을 ViewController
에 추가하는 것은 무시하는 것 같습니다.
내 SearchController
작동 ViewController (Details)
내부 prepareForSegue
의 버전을 작업 사용하는 경우 그러나 바르 NSArray *myData
가 ViewController
에 선언 볼 수 없습니다. 이상적으로는 새로운 데이터 변수가 무의미하기 때문에 ViewController (Details)
에 설정되도록 선언하고 싶지는 않습니다.
ViewController
이 prepareForSegue
또는 ViewController (Details)
을 실행하지 않으면 버튼 탭에서 데이터를 전달하는 방법에 데이터 변수가 표시되지 않습니까? 어떤 추천?
CoreData, Realm 또는 Static 참조와 같이 데이터를 먼저 저장하는 데는 별 상관이 없습니다. 여기서 중요한 점은 데이터에 단방향 흐름을 사용하면 클래스간에 데이터를 전달할 필요가 없으므로이 문제가 다시 발생하지 않을 것입니다. 대신 단일 진리 소스에서 항상 데이터를 가져오고 그게 다야. –
코드를 보여주십시오 --- 오직 관련 코드 --- VC와 카테고리에서. – danh
그리고 @ JanCssio는 꽤 옳습니다. vcs는 앱의 모델 자체에 액세스해야합니다. 예를 들어 사용자가 vcA에서 모델의 일부 측면을 선택하고 vcB의 작업이 세부 정보를 제시하는 경우와 같이 vCA가 통신하는 한 vcA가 vcB에 "데이터를 전달"하는 것이 합당하고 필요합니다. 선택. – danh