3

我希望能够根据在我的详细视图控制器中采取的操作来刷新我的应用程序主端的表格。

在这种情况下,我在左侧(主)侧有一个订单表,该表向下钻取以显示 3 个级别的订单:打开、持有和发送。因此,如果我“更改”订单的状态(将其搁置、解除搁置、发送等),我希望能够在主控端反映这一点。有任何想法吗?

从我尝试过的详细视图控制器中的操作按钮:

1.

[[appDelegate.splitViewController.viewControllers objectAtIndex:0] reload];

2.

OrdersRootController *orc = [[OrdersRootController alloc] initWithNibName:@"Orders" bundle:nil];
orc = [appDelegate.splitViewController.viewControllers objectAtIndex:0];
[orc.tableView reloadData];

编辑:

我尝试添加通知,但它不起作用:

我肯定错过了什么。. .

我在 awakeFromNib 中添加了一个观察者:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshOrders:) name:@"OrderStatusChanged" object:odc];

并从订单中过帐:

[[NSNotificationCenter defaultCenter] postNotificationName:@"OrderStatusChanged" object:self];`

但指定的选择器永远不会触发。. . 我错过了什么?

4

3 回答 3

2

尽管您已经选择了答案.. 在 DetailView 中的任何位置调用它:

UINavigationController *navController = self.splitViewController.viewControllers[0];
MasterViewController *controller = (MasterViewController *)navController.topViewController;
于 2013-03-01T10:27:06.730 回答
1

我会将详细视图中的表视图的引用(可能在 AppDelegate 中)传递给主视图,并直接调用表重新加载数据。

或者您可以使用通知,主视图发出通知,详细视图通过加载适当的数据进行响应。

于 2011-07-31T00:22:12.823 回答
0

如果您使用的是默认的 splitview 控制器,您可以这样做

[self.rootViewController.tableView reloadData];
于 2011-07-31T18:02:49.750 回答