私は客観的なCとXCode 4.2でiphone開発に新しいです。今、私はUITableViewControllerを正しくインスタンス化し、複数レベルのjsonデータツリーを走査できます。しかし、リーフページのUIを確立するのに問題があります。私は、これまであなたのコードのスニペットを表示してみましょう:子ノードが存在する場合ので、別のuinavTableViewControllerを作成した場合iphone uiviewcontrollerが表示されていませんか?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
int row = [indexPath row];
NSString * currentrow = [NSString stringWithFormat:@"%d.",row];
NSDictionary * item = [dataArray objectForKey:currentrow];
NSDictionary * children = [item objectForKey:@"children"];
if(children != nil)
{
uinavTableViewController *childView = [[uinavTableViewController alloc] init];
childView.dataArray = children;
[self.navigationController pushViewController:childView animated:YES];
}
else
{
uinavMenuItem * childView = [[uinavMenuItem alloc] init];
//uinavSecondViewController * childView = [[uinavSecondViewController alloc] init];
[self.navigationController pushViewController:childView animated:YES];
}
}
ので、if文の最初の部分は、チェックします。この部分は完全に機能します。
elseステートメントは、uinavMenuItemを使用してリーフページを作成します。シミュレータでこれを実行すると、リーフページは黒い画面に過ぎません。私は自分のNSLogを見て、uinavMenuItem viewDidLoadが起動したことを確認できます。コントローラのコードは正常に動作していますが、ストーリーボードに描いたビューにリンクする方法はわかりません。
私はstoryboarDで描いたものをuinavMenuItemが表示できないように間違っていますか?
ありがとう、 "ビューコントローラのプロパティの下でストーリーボードの識別子を定義する"ことについて詳しく説明できますか?私はXcodeパネルの周りを見ていますが、明瞭にするためにinstantiateViewContollerWithIdentifier – John
画像を追加したようなものは特定できません。 – Morrowless
いいえ、私は識別子を作った。私はelse文を次のように置き換えました: 'uinavMenuItem * childView = [self.storyboard instantiateViewControllerWithIdentifier:@" menuleafsegue "]; [self.navigationController pushViewController:childView animated:YES]; '正しい行に沿っていますか?今はシミュレータが私のuinavMenuItemには行きません。 – John