如何更改弹出控制器中的标签栏时更新详细视图中的UITableView?

时间:2012-02-16 10:45:35

标签: ipad uitableview uitabbarcontroller uisplitviewcontroller

我正在创建一个带有splitview的iPad应用,这是屏幕截图, enter image description here 在这一个中,当我更改masterview控制器(左侧)中的选项卡时,我想更新右侧tableview中的值。这将是一个很好的方法,我应该为每个标签更改加载另一个viewcontroller吗?可能吗?或者只是更新表格?对于所有选项卡更改,我想显示包含不同数据的tableview。 我使用了以下代码,我可以看到日志中的更改,但表格没有得到更新。

- (void)setDetailItem:(id)newDetailItem
{
    if (_detailItem != newDetailItem) {
        [_detailItem release]; 
        _detailItem = [newDetailItem retain]; 

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

    if (self.masterPopoverController != nil) {
        [self.masterPopoverController dismissPopoverAnimated:YES];
    }        
}

- (void)configureView
{
    // Update the user interface for the detail item.
    if (isStudent) {
        textStr = @"student";
        NSLog(@"Student....%@",textStr);
        [self.tableView reloadData];
    }if (isTeachers) {
        textStr = @"teacher";
        NSLog(@"Teacher....%@",textStr);

        [self.tableView reloadData];
    }if (isPreference) {
        textStr = @"preference";
        NSLog(@"Preference....%@",textStr);

        [self.tableView reloadData];
    }if (isConfiguration) {
        textStr = @"configuration";
        NSLog(@"Configuration....%@",textStr);

        [self.tableView reloadData];
    }
}

我也尝试了

[self performSelectorOnMainThread:@selector(refreshTableView) withObject:nil waitUntilDone:NO];

请分享您的想法。 谢谢:))

1 个答案:

答案 0 :(得分:4)

最后我自己发现了这个问题,我真的很高兴寻找解决方案。我已经浏览了几个论坛和教程。最后我想出了这个问题。在这个video中,他们已经说明了如何使用XCode 4.2创建SplitView应用程序。在这一个中,只有一行代码解决了这个问题。那是在Appdelegate.m文件中。默认情况下,MasterViewController无权访问详细信息视图,因此如果我们需要在detailview上执行某些操作,则必须连接masterviewcontroller和detailviewcontroller。检查视频,然后你会(那些面临同样问题的人)理解。

谢谢:)