使用 UIViewController 中的表将变量传递给详细视图控制器(不是 UITableViewController !!)

Posted

技术标签:

【中文标题】使用 UIViewController 中的表将变量传递给详细视图控制器(不是 UITableViewController !!)【英文标题】:Pass variable to a detail view controller using a table in UIViewController (not UITableViewController!!) 【发布时间】:2012-07-22 20:53:37 【问题描述】:

我目前有 2 个视图控制器:ViewControllerDetailViewController。它们都不是表视图控制器,它们都只是视图控制器。但是,我在ViewController 上确实有一张桌子,否则效果很好。 I want to segue/pass a variable to DetailViewController when a cell is selected.

使用情节提要,我设置了从单元格到DetailViewController 的模态segue,标识符为toDetailView

我尝试使用此方法将我的变量(在此示例中称为 play)从 VC 传递到 DVC(通过 http://developer.apple.com/library/ios/#samplecode/SimpleDrillDown/Listings/Classes_RootViewController_m.html#//apple_ref/doc/uid/DTS40007416-Classes_RootViewController_m-DontLinkElementID_10):

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

    if ([[segue identifier] isEqualToString:@"toDetailView"]) 

        NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
        DetailViewController *detailViewController = [segue destinationViewController];
        detailViewController.play = [dataController objectInListAtIndex:selectedRowIndex.row];
    

但是我得到一个错误:Property 'tableView' not found on object type 'ViewController *'。我认为这是因为它不是表视图控制器?我怎样才能解决这个问题?或者我可以使用另一种方法来使用(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 传递变量吗?

【问题讨论】:

【参考方案1】:

在 ViewController 上,像这样创建一个新属性:

@property (nonatomic, assign) IBOutlet UITableView *tableView;

还有synthesize。然后,在 Interface Builder 中,您应该能够将插座分配给您正在使用的 tableview。这应该可以解决问题

【讨论】:

我试过了,它使我的程序在构建时崩溃。输出中没有给出任何特殊错误来帮助我调试。我正在尝试不同的方法。 构建时崩溃? GCC 还是 LLVM?还有其他问题,因为这是规范的方法。请发布您的源代码 我再次尝试以确保我第一次没有做愚蠢的事情。现在我得到了我在最后一行代码中有Use of undeclared identifier 'dataController' 的错误。我可以使用更多源代码编辑我的原始帖子,但我不确定代码的哪些部分对您最有用。 dataController 是如何定义的? (如果是视图控制器的属性,可能就这么简单self.dataController。) 我实际上得到了这个工作,我的代码有很多问题,在评论中发布会占用太多空间。但是感谢您的帮助,因为绝对需要插座!

以上是关于使用 UIViewController 中的表将变量传递给详细视图控制器(不是 UITableViewController !!)的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Drop Table

将变量值分配给模板中的表单域

两个动态创建的表中行的相等高度,使用JQuery

通过单击鼠标将变量值传递给java中的servlet

如何将变量值用作JS对象中的属性[重复]

如何将变量值从一个文件中的一个类传递给另一个文件中的另一个类python tkinter