2012-08-20 1 views
0

첫 번째 탭에서 DatageStorageController의 데이터를 변경하는보기가 있습니다. 두 번째 탭을 클릭하면 데이터 저장소가 표시되지만보기는 업데이트되지 않습니다. 보기를 새로 고칠 수 있습니까? UITable보기가 아닙니다.TabItem에서 새로 고침

+0

귀하의 질문을 이해할 수 있는지 확실하지 않습니다. 좀 더 설명해 주시겠습니까? 당신은'UITabBarController'를 사용하고 있습니까? "blabla에서 데이터 변경"이란 무엇을 의미합니까? '[tableView reloadData];처럼? 두 번째보기가 첫 번째보기와 다른보기입니까? – aforaudrey

+0

예 두 개의 관계가있는 UITabBarController (탭 막대 항목)를 탐색 컨트롤러로 사용하고 있습니다. 둘 다 뷰 컨트롤러로 푸시합니다. 첫 번째에서는 sharedInstance를 사용하여 데이터가 변경됩니다. 두 번째보기에서는 뷰에 데이터가 표시되지만 데이터에는 업데이트 된 데이터가 표시되지 않습니다. 뷰는 다른 클래스도 사용합니다. – kezi

답변

1

나는 viewDidLoad에 코드를 작성한다고 생각합니다. viewWillAppear에이 코드를 작성해야합니다. 어떤 코드를 업데이트할까요? ViewAppear에. (UITabBarController가 *) tabBarController didSelectViewController : 또는 두 번째 방법 당신은 tabbarcontroller

처럼

  • (무효) tabBarController의 대리자 메서드를 사용할 수있는이 방법 (의 UIViewController *)의 ViewController

당신 선택한 viewController 인수를받을 수 있습니다.

[viewController viewDidLoad];

다시보기를로드한다는 의미입니다. 전화해도 [viewController viewWillAppear];

+0

나를 위해 중요한 문제를 해결하는 데 도움을주었습니다! +1 – kezi

0

글쎄, UITabBarDelegate 프로토콜을 구현하고 의 'tabBar : didSelectItem'에 컨트롤러보기를 업데이트 할 수 있습니다. 그러나이 접근법은 아마도 가장 깨끗한 것이 아닙니다! 두 번째 컨트롤러는 데이터 변경 사항에 대해 어떻게 든 고지되어야하므로 뷰를 업데이트 할 수 있습니다. 아마 KVO/KVC를 한번보세요!

관련 문제