IOS / Xcode / Storyboard:如何从表格行转换为模态视图控制器

时间:2015-01-26 02:14:25

标签: xcode storyboard segue

我认为这是一个故事板问题。

如何从表格行创建segue到新的视图控制器?

这是一张应该是什么样子的照片。

storyboard screenshot

我尝试控制从表格拖动到底部的视图控制器,但它不需要。如果我将视图控制器嵌入到导航器中,我可以创建一个推送segue但是当你点击它时它不起作用。

这是我正在使用的代码,但首先我希望能够复制图片中的故事板。在任何情况下,我都希望在您单击表格行时弹出新的视图控制器。

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    // Store Selection
    [self setSelection:indexPath];
}


...

else if ([segue.identifier isEqualToString:@"updateToDoViewController"]) {
            NSLog(@"segue to update");

            // Obtain Reference to View Controller
            UpdateTodoVC *vc = (UpdateTodoVC *)[segue destinationViewController];

            // Configure View Controller
            [vc setManagedObjectContext:self.managedObjectContext];

            if (self.selection) {
                // Fetch Record
                NSManagedObject *record = [self.fetchedResultsController objectAtIndexPath:self.selection];

                if (record) {
                    [vc setRecord:record];
                }

                // Reset Selection
                [self setSelection:nil];
            }
        }
    }

感谢您的任何建议。

1 个答案:

答案 0 :(得分:5)

您无法从“原型”单元格中进行ctrl +拖动!你只能用静态单元格做到这一点。所以你必须从UITableViewController ctrl +拖动到下一个视图控制器,给它一个标识符updateToDoViewController,并以编程方式执行segue:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    // Store Selection
    [self setSelection:indexPath];

    // Perform the segue with identifier: updateToDoViewController
    [self performSegueWithIdentifier:@"updateToDoViewController" sender:self];
}