Master Detail应用程序

时间:2011-11-02 21:13:36

标签: iphone objective-c ios xcode ipad

我设法将一些值读入表视图并在SplitViewController的主视图中显示它们。

我想要做的是点击主视图的一行并在detailViewController上显示详细信息,但是在具有标签和文本字段的TableView的自定义单元格中。

当我点击MasterView表中的行时,我似乎无法获取详细信息来填充detailview自定义单元格。

我试过像

这样的东西
if  (indexPath.row == 0) {
    lbPerson.text = @"Name";
    tfPerson.text = @"John";
    tfPaciente.placeholder = @"Name";
}else if (indexPath.row == 1) {
    lbPerson.text = @"Address";
    tfPerson.text = @"Street blabla";
    tfPerson.placeholder = @"Address";
}

但是当我点击我的主视图表时,我不知道在哪里放置我的代码以及如何更新我的detailview tableview

谢谢!

1 个答案:

答案 0 :(得分:0)

在你的detailView中你应该有“id detailItem”,然后在委托方法中设置:

- (void)setDetailItem:(id)newDetailItem {

if (_detailItem != newDetailItem) {

    _detailItem = [newDetailItem retain]; 

    // Update the view.
    [self configureView];
}

}

- (void)configureView {

// Update the user interface for the detail item.
if (self.detailItem) {
   //do something ... reload tableview or change values etc 
}

}

要在MasterView中调用此方法,请执行以下操作:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

self.YOURDETAILVIEWCONTROLLER.detailItem = @"Example";
self.YOURDETAILVIEWCONTROLLER.title = [NSString stringWithFormat:@"You Pressed Row %d", indexPath.row];

}

这将调用设置详细视图的第一个方法,显然通过此详细信息项可以设置detailView的属性。