한 뷰 컨트롤러를 다른 뷰 컨트롤러에서 참조하는 데 문제가 있습니다. 코드는 작동하지만 경고를 받으면 내가 잘못 생각할 것입니다. tableView
에있는 controller
의 데이터를 다시로드하려고 시도하고 있습니다. NavigationController
에 있습니다.ViewController 계층을 적절하게 순회합니까?
AppDelegate에에서 :이 같은 메시지가 잘못 무엇
이 작동하지만 엑스 코드는 selectedViewController
가 navigationController
을 반환 것을 알고하지 않기 때문에
[self.tabBarController.selectedViewController.topViewController.tableView reloadData];
, 내가 경고 request for member 'topViewController' in something not a structure or union
를 얻을. 그래서 내가 할 수있는 다음
UINavigationController *myNavigationController = self.tabBarController.selectedViewController;
[myNavigationController.topViewController.tableView reloadData];
을하지만 나는이 경고를 얻을 : incompatible Objective-C types initializing 'struct UIViewController *', expected 'struct UINavigationController *'
얼마나 나는이 함께 가야합니까을? 첫 번째 줄이 작동합니다. "올바른 방법"을 얻으려면 8 줄의 코드가 필요합니까?
귀하의 요지를 봅니다. 이 작업을 시작하는 이벤트는 'app : handleOpenURL'을 통해 다른 앱에서 앱으로 전달 된 파일입니다. 'tableViewController' 메서드를 호출하여이 작업을 처리하게하면 (좋은 생각처럼 들리 네요). 'AppDelegate'에서'tableViewController'를 한 번 참조해야합니다. 나는이 문제와 관련해서 만이 딜레마를 자주 접한다. 그것은 내가 거미줄 일 때 다른 물건의 속성으로 하나의 물건을 끊임없이 저장하고있는 것처럼 보입니다. 이것이 내가 초기 코드 라인을 사용하려고하는 이유입니다. – Andrew