사실 그것은 단지 데이터 전달 문제가 아니에요. 스토리 보드의 의미가 아니라 스토리 보드를 사용하고자 할 때 앱의 개념에 대해 다시 생각해 봐야합니다. 귀하에게 달려 있으며, 자신이하는 일을해야 할 충분한 이유가 있기를 바랍니다.
그래서 segue를 사용하지 않기로 결정했을 때 새로운 컨트롤러를 인스턴스화하고 데이터를 전송하는 새롭고 편안한 방법을 잃어 버렸습니다. 그리고 두 가지 단계로 컨트롤과 데이터를 전송해야합니다. 스토리 보드에서 다른 장면을 인스턴스화하면 (instantiateViewControllerWithIdentifier와 같이 :) 새 컨트롤러를 인스턴스화하고 컨트롤은 전송하지만 데이터는 전송하지 않습니다. 옛날 방식으로 xib에서 새 컨트롤러를 인스턴스화 할 때 생각해보십시오 (그래서 스토리 보드가 initWithName : bundle :)을 호출하지 않으므로 두 번째보기 컨트롤러에서 initWithCoder : 또는 awakeFromNib를 사용해야하지만 더 이상 아무것도하지 않았습니다. .
그래서 두 번째 스토리 보드의 정체성 부분에 이름이 지정된 컨트롤러가 있습니다. 스토리 보드 그림이 멋지게 묘사 한 것처럼 다른 관계 나 관계없이 우주에 매달려 있습니다. 그러면 할 수 있습니다. 그것으로 당신이 원하는 것.
그래서 뭔가하고 싶으시고 이전 스토리 보드 (ViewController)의 데이터가 필요합니다. 필요한 것은 두 번째 스토리 보드 (ViewController)에 해당 데이터를 제공하는 것입니다. 스토리 보드가 존재하기까지 오랫동안 사용할 수 있었던 많은 솔루션이 있습니다.
그래서 코드에 관해서는 "데이터 전송"은 두 컨트롤러가 서로의 서브 클래스인지 여부에 관계없이 디자인에 따라 달라집니다.
서브 클래 싱을 다루지 않으려하고 가능한 한 많이 분리하려는 경우 가장 좋은 방법은 첫 번째 컨트롤러에서 데이터의 속성을 만들고 두 번째 컨트롤러에서 데이터를 참조하는 것입니다 (첫 번째 컨트롤러를 가져온 후 당신이 그들을 필요로하는 곳에 당신이 역으로 동일한 작업을 수행하고, 두 번째 컨트롤러의 속성을 확인하고 참조 할 수 있습니다
물론
secondViewControllerdata = firstViewControllerdata.thatDataProperty
으로, 또는 어느 곳 : 파일 .H) 및 단지에서 참조있는 viewDidLoad 또는 initWithCoder에 있어요 귀하의 첫 번째보기 컨트롤러에서.
당신의 UIViewController에서 몇 가지 매개 변수를 정의 할 수 있습니다
가능한 중복 (http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) –
이 게시물에서 솔루션을 볼 수 없습니다. Isegues를 사용하지 않기 때문에 인스턴스화 컨트롤러를 사용하고 있습니다. 그럼 난 여전히 준비를 사용합니까 segue 없다는 것입니다? – halloway4b
보기 컨트롤러가 인스턴스화 된 곳에서 메시지를 전달하는 방법을 변경해서는 안됩니다. –