0

내 데이터 개체에 대한 참조를 전달하는 데 문제가 있습니다. 프리젠 테이션 뷰 컨트롤러에는 데이터 객체에 대한 참조가 있습니다. 모달 뷰 컨트롤러는 네비게이션 컨트롤러에 연결되어 있으며 루트 뷰 컨트롤러입니다.개체에 대한 참조를 탐색 컨트롤러에 포함 된 모달로 제공되는보기 컨트롤러로 전달하는 방법은 무엇입니까?

제시 VC를 : 여기에 내가 그것을하고 있어요 어떻게 모달 VC가 나타나면 self.dataObject이 전무는

- (IBAction)changeCustomerButtonPress:(UIButton *)sender {  
    UINavigationController *customersNC = [self.storyboard instantiateViewControllerWithIdentifier:@"customersNC"]; 
    SCCustomersVC *customersVC = (SCCustomersVC *)[self.storyboard instantiateViewControllerWithIdentifier:@"customersVC"]; 
    customersVC.dataObject = self.splitVC.dataObject; 

    //at this point, customersVC.dataObject exists 

    [self presentViewController:customersNC animated:YES completion:nil]; 
} 

입니다.

- (void)viewWillAppear:(BOOL)animated 
{  
    //self.dataObject is nil here. 
} 

올바른 방법은 무엇입니까?

답변

2

IB의 내비게이션 컨트롤러에 루트보기 컨트롤러가 있습니까? 만약 그렇다면, 그렇지 않아야합니다. 하지만 하나가 있다고 가정하면 SCCustomersVC를 인스턴스화하면 안됩니다. 왜냐하면 탐색 컨트롤러가 인스턴스화 될 때이를 수행하기 때문입니다. 데이터를 전달하려면 topViewController를 사용하여 해당 컨트롤러에 대한 참조를 가져옵니다.

SCCustomersVC *customersVC = (SCCustomersVC *)[customerNC topViewController]; 
    customersVC.dataObject = self.splitVC.dataObject;