最初のコントローラーとしてテーブルビューコントローラーを備えたナビゲーションコントローラーがありますが、データベースが空の場合、ユーザーにデータベースに入力する情報を要求するビューをユーザーに表示し、ビューの代わりにナビゲーションコントローラーに表示したいと考えていますストーリーボードに割り当てられているので、プログラムでこれを行う必要があると思いますが、私はiPhone開発に不慣れで、正直なところどこから始めればよいかわかりません。
1 に答える
方法は次のとおりです。ユーザーが情報を送信するビュー コントローラーのストーリーボードに新しいシーンを作成します (CollectInfoViewController と呼びます)。次に、テーブルビュー コントローラーから CollectInfoViewController へのモーダルセグエを作成します。Attributes Inspector で、セグエの Identifier プロパティを「CollectInfo」に設定して、後で識別できるようにします。
次に、テーブルビュー コントローラーのviewDidLoad
メソッドが実行されるときに、表示する行があるかどうかをテーブル ビュー デリゲートに問い合わせます。存在しない場合は、CollectInfoViewController へのセグエをプログラムで実行します。
- (void)viewDidLoad
{
[super viewDidLoad];
if ([self.tableView.dataSource tableView:self.tableView numberOfRowsInSection:0] == 0) {
[self performSegueWithIdentifier:@"CollectInfo" sender:self];
}
}
CollectInfoViewController で、ユーザーが情報を入力し、それをデータベースに保存したら、CollectInfoViewController 内から次のように呼び出して、そのビューを閉じることができます。これにより、ユーザーはテーブルビューに戻ります。
[self dismissModalViewControllerAnimated:YES];
最後に、tableview コントローラーに戻り、収集された新しいデータでテーブルをリロードする必要がある場合があります。viewWillAppear
これは、モーダル ビュー コントローラーが閉じられたときに呼び出されます。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.tableView reloadData];
}