我已经加载了tableView形式的XIB文件(xyz) 现在,我必须在单击xyz文件中存在的任何单元格时加载另一个XIB文件(abc)。我已经在didSelectRowAtIndexPath方法中编写了这段代码
abc * vc = [[abc alloc] initWithNibName:@"abc" bundle:nil];
[self.navigationController pushViewController:vc animated:YES];
它在main中引发SIGABRT错误。请帮忙!
答案 0 :(得分:0)
就像评论中提到的那样,检查self.navigationController是否为nil。 如果您使用的是故事板,请尝试将ViewController嵌入到NavigationController中。您可以通过在故事板上选择视图控制器,然后转到“编辑器”>“嵌入”>“导航控制器”
进一步,检查xib文件的名称是否确实为“ abc”
答案 1 :(得分:0)
选择xib文件并打开文件检查器。现在,在“目标成员身份”下,选中复选标记。
并检查abc视图控制器或navigationController是否为空
if (![[abc alloc] initWithNibName:@"abc" bundle:nil]) {
NSLog(@"xib file with name abc not found");
} else if (!self.navigationController) {
NSLog(@"Navigation controller is nil");
} else {
abc * vc = [[abc alloc] initWithNibName:@"abc" bundle:nil];
[self.navigationController pushViewController:vc animated:YES];
}