我使用的是Objective-C。我在.m文件中有这段代码。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
detailViewController *detail = [[detailViewController alloc]init];
[self.navigationController pushViewController:detail animated:YES];
}
我在故事板中创建了详细视图控制器场景。它看起来像[
每次我在我的模拟器中运行它并点击其中一个tableview单元格时,它会将屏幕推到一个完整的黑色屏幕,如下所示:
有人能帮助我吗?我非常感谢你!
答案 0 :(得分:2)
是的,它会显示一个空白屏幕,因为您还没有在detailViewController
课程上附加任何视觉解释。
使用此方法
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
DetailViewController *vc = [sb instantiateViewControllerWithIdentifier:@"detailViewController"];
[self.navigationController pushViewController:vc animated:YES];
您必须通过单击视图控制器设置故事板ID,并设置故事板ID,如图所示
注意:对于上面的pic替换Storyboard id" MessagingVC"使用" detailViewController"
答案 1 :(得分:0)
使用情节提要时,您不希望使用alloc+init
来创建视图控制器。相反,您需要在Interface Builder中分配Storyboard ID,然后使用:
[self.storyboard instantiateViewControllerWithIdentifier:my_identifier];
更好的选择可能是在表视图控制器上设置推送segue。这将导致实例化和推送自动发生。如果需要,您可以覆盖prepareForSegue:sender:
来设置属性。