【问题标题】:launching a UIViewcontroller from a UITableViewController crashes app从 UITableViewController 启动 UIViewcontroller 会使应用程序崩溃
【发布时间】:2012-01-30 08:10:49
【问题描述】:

我有一个 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 无效??? 有人可以帮忙吗,我很困惑。

【问题讨论】:

    标签: iphone ios5 storyboard segue


    【解决方案1】:

    我不明白您到底面临什么问题,但我想告诉您,由于您首先使用的是 uitableview,请将其单元格连接到新的视图控制器并选择“推送”segue 方法。完成此操作后,将以下代码添加到应用程序中,而不是用户 didselectrowatindexpath 方法。

    • (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

      /* 选择行时,SEGUE将创建详细视图控制器作为目标。 将详细视图控制器的详细项目设置为与所选行关联的项目。 */ if ([[segue identifier] isEqualToString:@"Showcategorydetails"]) {

      NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
      CategoryDetailsController *detailViewController = [segue destinationViewController];
      detailViewController.category_title = [maincategories_array objectAtIndex:selectedRowIndex.row];
      

      } }

    【讨论】:

    • 谢谢。问题是目标 Viewcontroller 崩溃了,因为插座连接都搞砸了。我从另一个视图控制器复制了情节提要上的视图控制器,它还复制了插座连接。所以这个 ViewController 的副本连接到旧 Viewcontroller 的插座。一旦解决了这个问题,我就可以走了。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多