2015-01-20 7 views
0

스토리 보드에 탐색 컨트롤러의 탭 컨트롤러에 이미 포함 된 다른보기 컨트롤러와 연결된보기가 포함 된 경우 탭의 초기보기에서 첫 번째보기로 변수를 전달하는 방법 제어 장치?탐색 컨트롤러와 탭 컨트롤러 간의 데이터 전달

특히, 기본 변수 performSegueWithIdentifier을 사용하여 변수를 전달하려고합니다. 첫 번째보기 컨트롤러 (탐색 컨트롤러에 포함 된)를 탭 컨트롤러에 연결하면 데이터를 전달할 수 없습니다. 그러나 첫 번째보기 컨트롤러와 대상보기 컨트롤러간에 직접 연결되면 대상이 더 이상 탭에 포함되지 않습니다.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "internalItemDetail" { 
     let destination = segue.destinationViewController as InternalInventoryDetail 
     let index = itemTable.indexPathForSelectedRow()! 
     destination.fmRecordId = sectionedItemArray[index.section][index.row]["fmRecordId"] as String! 
    } 
} 

명확히하기 위해, 목표는 UI가 탐색 컨트롤러 내부 탭 제어기를 보여주는 것이지만 탭 컨트롤러에 내장 된 다른 뷰로 탐색 컨트롤러로부터 변수를 전달한다.

답변

0

UIStoryBoardSegue에는 대상보기 컨트롤러를 제공하는 destinationViewController 속성이 있습니다. 사용자의 경우 UITabBarController (질문을 올바르게 읽는 경우). UITabBarController에 캐스팅해야하고 거기에서 하위 뷰에 액세스 할 수 있습니다. (객관적인 c에있는 부호는 개조하게 쉽다, 나는 지금 막 즉시 사용하지 않았다)

UITabBarController *tabControl = (UITabBarController *)segue.destinationViewController; 
MyViewController *mv = (MyViewController *)tabControl.viewControllers[0];// whatever index you want 
관련 문제