TableViewController와 함께 한 컨테이너보기가있는 간단한 ViewController 있습니다. ViewController에서 외부 API 및 해당 데이터의 한 부분에서 데이터를로드하는 중 컨테이너에서 TableViewController로 전달해야합니다.컨테이너보기 컨트롤러에 대한 액세스
어떻게 할 수 있습니까? 감사합니다.
TableViewController와 함께 한 컨테이너보기가있는 간단한 ViewController 있습니다. ViewController에서 외부 API 및 해당 데이터의 한 부분에서 데이터를로드하는 중 컨테이너에서 TableViewController로 전달해야합니다.컨테이너보기 컨트롤러에 대한 액세스
어떻게 할 수 있습니까? 감사합니다.
컨테이너 뷰에 포함 된 컨트롤러는 상위 컨트롤러의 self.childViewController에서 액세스 할 수 있습니다. 그 중 하나만 있으면 self.childViewControllerers [0]에있게됩니다.
참고 : RD의 우수한 기술 에 대한이 아래의 코멘트에 설명; 테스트되고 작동하는 전형적인 예가 있습니다 : 이것은 전체 장면의 VC에서 간단히 나타납니다. 텍스트 식별자를 설정하려면 segue 자체 (즉, 연결 화살표 중간의 작은 기호)를 클릭하기 만하면됩니다. 여기
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"containerLogin"])
self.vcLogin = (LoginVC *)segue.destinationViewController;
if ([segue.identifier isEqualToString:@"containerStartNew"])
self.vcStartNew = (StartNewVC *)segue.destinationViewController;
}
스위프트에 그것을 어떻게 그냥 하나를보다가 있다면 도대체 무슨 일을 할,
override func prepareForSegue(segue:(UIStoryboardSegue!), sender:AnyObject!)
{
if (segue.identifier == "feedContainer")
{
feed = segue!.destinationViewController as! Feed
feed.someFunction()
}
}
RD (당신은 unwrappers에 조심해야)? 당신은 어떻게 알 수 있습니까? 어떤 아이디어? – Fattie
@JoeBlow, 어떤 컨트롤러인지 다시 확인할 수있는 컨트롤러 클래스를 확인할 수 있습니다. 당신은 또한 내 대답 (임베디드 컨트롤러 segue.destinationViewController 될 것입니다)에서 말했듯이 그것을 대신 prepareForSegue 컨트롤러를 할당 할 수 있습니다. 이 메소드는 임베디드 컨트롤러에 대해 호출되므로이를 구현할 수 있으며 segue의 식별자를 확인하여 어느 컨트롤러인지 알 수 있습니다. 그것은 아마도 더 좋은 방법 일 것입니다. 특히 자녀가 둘 이상인 경우 특히 그렇습니다. – rdelmar
테스트를 통해 완벽하게 작동합니다. 훌륭한. 놀라운 것은 더 일반적으로 알려져 있지 않습니다. – Fattie