2012-04-05 6 views
0

첫 번째 컨트롤러로 tableview 컨트롤러가있는 네비게이션 컨트롤러가 있지만 데이터베이스가 비어있을 때 사용자에게 몇 가지 정보를 묻는 뷰를 보여주고 싶습니다 데이터베이스를 채우고 스토리 보드에 할당 된보기 대신 탐색 컨트롤러에 표시하려면 프로그래밍 방식으로이 작업을 수행해야한다고 생각합니다. 그러나 iphone 개발에 익숙하지 않고 솔직히 어디서부터 시작해야할지 몰라요.스토리 보드를 사용하여 데이터가 비어있을 때 네비게이션 컨트롤러에 다른보기 표시

답변

1

다음은 수행 방법입니다. 스토리 보드에서 사용자가 정보를 제출할보기 컨트롤러 (사용자가 CollectInfoViewController라고 가정 해 봅시다)의 새 장면을 만듭니다. 그런 다음 모달 segue를 Tableview 컨트롤러에서 CollectInfoViewController로 만듭니다. Attributes Inspector에서 segue의 Identifier 속성을 "CollectInfo"로 설정하면 나중에 식별 할 수 있습니다.

그런 다음 tableview 컨트롤러의 viewDidLoad 메서드가 실행될 때 테이블 뷰 대리자에게 표시 할 행이 있는지 확인하십시오. 없는 경우, 프로그래밍 방식으로 Segue를 CollectInfoViewController에 수행하십시오. 사용자가 정보를 입력하고 당신이 당신의 데이터베이스에 저장 한 번 CollectInfoViewController에서

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if ([self.tableView.dataSource tableView:self.tableView numberOfRowsInSection:0] == 0) { 
     [self performSegueWithIdentifier:@"CollectInfo" sender:self];  
    } 
} 

는, 당신은 그보기를 닫 CollectInfoViewController 내에서 다음을 호출 할 수 있습니다. 그러면 사용자가 tableview로 돌아갑니다.

[self dismissModalViewControllerAnimated:YES]; 

마지막으로, 다시 tableview 컨트롤러에서 수집 된 새 데이터로 테이블을 다시로드해야 할 수도 있습니다. 모달 뷰 컨트롤러가 닫힐 때 호출되는 viewWillAppear에서이를 수행 할 수 있습니다.

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    [self.tableView reloadData]; 
} 
관련 문제