0

mainControllerView가있는 iOS 응용 프로그램이 있는데 거기에 UINavigationController를 만든 다음 FirstViewController라는 새로운 UIViewController와 다른 뷰를 UINavController에 넣습니다. jQuery과는 CoreData에 의해 공급되고 있음을,UINavigationController를 사용하여 다른 컨트롤러에서 UIViewController를 업데이트하거나 다시로드 하시겠습니까?

MainController(UIVIewController) 
    | 
    --> UINavController 
     | 
      --> FirstViewController(UIViewController) 
     | 
      --> SecondViewController(UIViewController) 
     | 
      --> AddViewController 

또한, 나는 jQuery과가있는 FirstViewController 내부 : 짧은에서

이 같은 것입니다.

이제 NavigationBar의 오른쪽 위 모서리에 "더하기"시스템 버튼을 추가하여 DB에 다른 행을 추가하기로 결정 했으므로 UITableview에 반영해야합니다.

내가 한 것은 "더하기"버튼을 누를 때 NavController 스택에 푸시되는 AddViewController라는 다른 사용자 정의보기를 만드는 것입니다. 그보기에서 방금 몇 개의 텍스트 필드와 DB를 업데이트하는 버튼을 추가했는데, 작동 중입니다. 그러나 내가 누를 때 FirstViewController 내부에있는 UITableView를 업데이트하는 방법을 찾을 수 없습니다. 짧은에서 다시

,

UINavController(with FirstViewController) 
1.-When I press the "+" button another UIViewController (AddViewContronller) 
    is pushed 
2.-In that view I present a few UITextfields to be filled. 
3.-I press a "save" button on the NavigationBar, that button save info 
    into the DB and then it goes back the FirstViewController, popping the current 
    UIViewController(AddViewController) 
4.-FirstViewController and its tableView is on the main screen again, however 
    the rows are still the same. 

내가 AddViewController에 저장 버튼을 누를 때 FirstViewController를 업데이트하려고 노력했지만, 내가 말했듯이, 나는 실패있었습니다.

내가 시도하지 않은 옵션은 다른 UIViewController로 점프하고 다시 할당 할 때 FirstViewController를 릴리스하지만 NavigationController를 사용하여 모든 뷰를 추적 할 수 있다고 생각하지 않습니다. 스택에있는 컨트롤러

아무도 내가 새로 고치기/UIViewController 다른보기에서 (UIViewController) 다시로드 할 수 있는지 알고 내 경우 FirstViewController보기에서 AddViewController?

또한 올바른 방향으로 가고 있는지 알고 싶습니다. 또는 내가하고 싶은 것은 모달 대화 상자 같은 다른 접근법으로 쉽게 할 수 있습니까? 당신이 UITableView에 익숙하지 않은 경우가있을 것입니다

어떤 도움을 아주 많이,

환호, 라울 모두의

+0

NSFetchedResultsController를 사용하여 데이터로 테이블보기를 채우고 있습니까? – an0

+0

아니요, 방금 데이터를 가져 오는 메서드를 만들었고 TableView를 업데이트해야 할 때마다 호출하는 방법을 생각했습니다. NSFetchResultsController에 대해 몰랐기 때문에이 작업을 수행했습니다 ... 이제는 그 모습을 간략하게 살펴 보았습니다. – rhormaza

답변

0

첫째을 주셔서 감사합니다, 당신은 Table View Programming Guide for iOS을 읽어야합니다.

코어 데이터를 사용하여 UITableView을 채우는 경우 거의 항상 NSFetchedResultsController을 사용해야합니다.

1

NSManagedObjectContextObjectsDidChangeNotification 알림을 처리 할 수 ​​있습니다. 예 :

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(dataDidChange) 
               name:NSManagedObjectContextObjectsDidChangeNotification 
               object:nil]; 
} 

- (void)dealloc { 
    [[NSNotificationCenter defaultCenter] removeObserver:self 
                name:NSManagedObjectContextObjectsDidChangeNotification 
                object:nil]; 
} 

- (void)dataDidChange { 
    [self.tableView reloadData]; 
} 
관련 문제