iphoneアプリ開発についての質問です
http://okwave.jp/qa/q8846564.htmlの質問に補足を付け加えたものです。
storyboardのprototype cellsでカスタムセルを4つ作成しidentifierも設定した状態で、
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static const id identifiers = { @"MetaCell", @"StatusCell", @"EvoCell", @"FormCell" };
NSString *CellIdentifier = identifiers[indexPath.section];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
以下略
という風にしているのですが
UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:
というエラーが出てしまいます。
identifierの文字列は何度見ても一致していました。
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
上記のコードを追加しても、一応エラーは出ませんが当然セルは反映せず真っ白のままです。
if (cell == nil) {
if (indexPath.section == 0) {
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
} else if (indexPath.section == 1) {
cell = [tableView dequeueReusableCellWithIdentifier:@"StatusCell"];
} else if (indexPath.section == 2) {
cell = [tableView dequeueReusableCellWithIdentifier:@"EvoCell"];
} else if (indexPath.section == 3) {
cell = [tableView dequeueReusableCellWithIdentifier:@"FormCell"];
}
}
一応このようなやりかたでも試しましたが結果は同じでした。
ちなみにこのテーブルビューへは前のビューからsegueで
(void)[[segue destinationViewController] initDetailDic:dic];
で遷移してきています。
何度調べても原因がわからず困っています。心当たりはないでしょうか。
*補足
問題の起こっているこのテーブルビューへは、前のテーブルビューから遷移してきているのですが試しにNavigationControllerのrootViewに設定してみたところちゃんと表示されました。画面遷移の方法に原因があると考えられるのですが、上に書いたやり方はごくごく一般の方法だとおもうのですが・・・
お礼
すみません、補足の方は自己解決しました。 ありがとうございました。
補足
なるほど、原因はそっちにありそうです。 ちなみにチェックボックスからチェックを外すときdidSelectRowAtIndexPathでは検知できなかったのですがこれは他に検知できるメソッドがあるのでしょうか?