我有一个 UItableViewController。在这个类中有以下方法,我试图在其中启动另一个 UIViewController。我尝试使用 segue 连接两者并给它一个标识符,然后使用这个版本:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"About to launch MyDetail View controller");
[self performSegueWithIdentifier:@"myDetailSegue" sender:self];
}
那没用,应用程序冻结了,我在 main.m 文件中收到一条消息,如下所示:““线程 1 收到信号 Sigabrt”
所以然后删除了segue并尝试如下实例化UIViewcontroller,
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"About to launch my Detail View controller");
UIStoryboard *sboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil];
UIViewController *myDetailVC = [sboard instantiateViewControllerWithIdentifier:@"myDetailVC"];
[self.navigationController pushViewController:myDetailVC animated:YES];
}
这有效。但现在我很困惑。为什么 UIStoryboard 方式有效而 segue 无效???有人可以帮忙吗,我很困惑。