在OS X objective c app

时间:2015-08-22 17:36:57

标签: objective-c cocoa nsviewcontroller

要避免将此问题标记为重复:我已经看到了这个问题(Passing Data between View Controllers),但这是针对iOS的。我见过很多其他类似的问题,但它们都为IOS提供了答案。我的问题是针对OS-X应用程序。

是的,我确实在这里以及谷歌检查过,但我无法在OS-X中找到解决此问题的任何内容。

话虽如此,这是一个问题:

在我的一个NSViewControllers(MasterTableViewController)中,我有以下方法:

- (IBAction)tableViewDoubleClick:(id)sender {

    NSInteger rowNumber = [_websitesTableView clickedRow];
    NSTableColumn *column = [_websitesTableView tableColumnWithIdentifier:@"websiteUrl"];
    NSCell *cell = [column dataCellForRow:rowNumber];
    NSString *cellValue = [cell stringValue];

}

如何(应该)将此数据(rowNumber,cellValue)正确传递给另一个NSViewController(DetailViewController)?

1 个答案:

答案 0 :(得分:1)

更高层次的答案是“不要”。您基本上使用表格单元格(UI项目)作为下一个控制器的数据模型,这可能有效但在应用程序变得复杂时非常容易出错。

您最好使用真实的数据模型对象来跟踪您在单元格中显示的信息。您发布的所有方法都必须告诉数据模型哪个项目现在是所选项目,并且下一个控制器出现时可以使用相同的信息。